计算机网络笔记(王道考研) 第五章:传输层

内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记。

感谢LY,他帮我做了一部分笔记。其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的。

课程内容和西电平时讲课的内容大致重合,西电可能会多讲一点内容,但多讲的考试基本不是重点,自己对照任课老师的课件补一下即可。考试要复习的内容看上去很多,但最后考的都很基础,基本不会考特别偏的知识。

王道的计网讲的中规中矩,听课听完可能会有点懵,建议快速过一遍内容后就开始刷题来加深理解。

 

其他章节的链接如下:

计算机网络笔记(王道考研) 第一章:计算机网络体系结构

计算机网络笔记(王道考研) 第二章:物理层

计算机网络笔记(王道考研) 第三章:数据链路层

计算机网络笔记(王道考研) 第四章:网络层

计算机网络笔记(王道考研) 第五章:传输层

计算机网络笔记(王道考研) 第六章:应用层

其他各科笔记汇总

传输层

计算机网络笔记(王道考研) 第五章:传输层_第1张图片

传输层概述

传输层

计算机网络笔记(王道考研) 第五章:传输层_第2张图片

中间的网络设备最多只能到网络层

进程和进程之间的逻辑通信 —— 表面上是两个主机的进程之间在通信。但实际是把数据从上层进行步步封装传给物理层,物理层放到链路上传输,到对端再至下而上把数据解封装交付给上层

复用:发送方不同的应用进程可以使用同一个传输层协议来传输数据

分用:接收方在传输层去掉报文首部后能够把数据送交给正确的进程

网络层的首部校验和只校验IP数据报头部没有校验数据部分,需要高层实现对数据的检错。网络层的数据部分就是传输层的报文段,因此传输层如果对报文进行差错检测,那网络层就不需要再对报文进行差错检测。网络层+传输层可以实现可靠传输

传输层并不一定会实现可靠传输

传输层的两个协议

计算机网络笔记(王道考研) 第五章:传输层_第3张图片

方便起见可将两个协议的传输单元都称为报文段

QQ发送一条消息即使用UDP协议

传输层寻址与端口

复用:应用层所有的应用进程都可以通过传输层再传输到网络层

分用:传输层从网络层收到数据后交付指明的应用进程

 

如果要发送数据给一台主机,在网络当中根据其IP地址寻找到它所在的网络,进入它所在的网络后再根据MAC地址再定位到具体的主机。找到主机后还应根据端口交付给具体的应用进程

端口:逻辑端口/软件端口,是传输层的SAP,标识主机中的应用进程

路由器和交换机上那种可以直接插拔的端口叫做硬件端口。而传输层的端口是看不见摸不着的,所以叫软件端口

用端口号来标识端口,端口号只有本地意义,在因特网中不同计算机的相同端口没有联系

端口号长度为16bit,可以表示 2 16 = 65536 2^{16}=65536 216=65536个不同的端口号

计算机网络笔记(王道考研) 第五章:传输层_第4张图片

客户端使用的端口号只有在使用时才会由操作系统随机分配,进程结束就会端口号被回收

 

一些常用的端口号:

计算机网络笔记(王道考研) 第五章:传输层_第5张图片

 

在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程

套接字Socket= (主机IP地址, 端口号)

UDP协议

用户数据报协议UDP概述

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能

UDP的主要特点:

  1. UDP是无连接的,减少开销和发送数据之前的时延

  2. UDP使用最大努力交付,即不保证可靠交付,可靠性由UDP上层即应用层保证

  3. UDP是面向报文的,适合一次性传输少量数据的网络应用

    计算机网络笔记(王道考研) 第五章:传输层_第6张图片

    因此应用程序需要选择大小合适的报文,报文太长则网络层需要分片以满足链路层MTU的要求,这样就会降低网络层的效率

  4. UDP无拥塞控制,适合实时应用(比如IP电话、视频会议)

  5. UDP首部开销小,只有8B,TCP20B

UDP首部格式

计算机网络笔记(王道考研) 第五章:传输层_第7张图片

一定会有首部字段,数据字段可以为0

16位源端口号可有可无。如果期望收到对方的回复则添上,如果不需要就可以是全0。目的端口号一定要有

16位UDP长度单位是1B

UDP校验

计算机网络笔记(王道考研) 第五章:传输层_第8张图片

17就是IP数据报首部的协议字段,这个协议字段说明IP数据报数据部分使用什么协议,这里数据部分使用UDP协议,对应的协议字段值是17

 

计算机网络笔记(王道考研) 第五章:传输层_第9张图片

TCP协议特点和TCP报文段

TCP主要特点

  1. TCP是面向连接(虚连接)的传输层协议

    虚连接 —— 并不是实际的物理连接,只是使用时就好像两个进程之间直接建立了点对点的连接。实际上连接过程是把数据报加上各个层次的首部之后放到链路上传输,然后在接收端进行步步解封装,这是一个完整的物理连接

  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的

    TCP协议不能用于广播和多播通信方式

  3. 提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重

  4. 提供全双工通信

    发送方和接收方角色不定,双方可以同时发送数据也可以同时接收数据

    TCP协议连接的两端都会设置发送缓存,接收缓存

    发送缓存:应用层准备发送的数据&已发送但尚未收到确认的数据

    接收缓存:按序到达但尚未被应用程序读取的数据&不按序到达的数据

  5. TCP面向字节流

    流:流入到进程或从进程流出的字节序列

    虽然进程和TCP交互时一次发送一个数据块,数据块可能大小不一样,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流

    计算机网络笔记(王道考研) 第五章:传输层_第10张图片

    发送方发送文件时会把文件按照字节排序编号并放入TCP缓存,再取几个字节加上TCP头形成TCP报文段再放到链路上传输

TCP报文段首部格式

计算机网络笔记(王道考研) 第五章:传输层_第11张图片

以上图为例发送”123“报文段时,该报文段首部序号字段填1

 

计算机网络笔记(王道考研) 第五章:传输层_第12张图片

接收端已经收到了”123“报文段就会给发送端发送首部确认号字段为4的报文段

 

由数据偏移字段可知首部最大为60B

 

 

计算机网络笔记(王道考研) 第五章:传输层_第13张图片

将RST置为1还可以用来拒绝一个非法报文段,或者拒绝打开一个链接

 

 

计算机网络笔记(王道考研) 第五章:传输层_第14张图片

发送方根据接收方报文的窗口字段设置发送窗口大小

 

检验时加上的伪首部的第四个字段其实就是协议字段,在UDP当中是17,而在TCP当中应该是6

 

紧急指针指出紧急数据的末位在报文段当中的位置。如紧急指针值为50,则TCP数据部分的前50个字节均为紧急数据,剩下的为普通数据

计算机网络笔记(王道考研) 第五章:传输层_第15张图片

 

MSS指的是每一个TCP报文段当中数据字段的最大长度

填充字段保证首部是4B整数倍,通常填充全0字段

TCP连接管理

TCP连接管理

TCP连接传输分为三个阶段:

image-20220815214518622

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器

TCP的连接建立

计算机网络笔记(王道考研) 第五章:传输层_第16张图片

Round1 ACK=0,ack无效

Round2 由于连接请求报文段没有数据部分,ack=x+1

Round3 SYN只在请求连接和连接接受时置1,SYN=0

SYN洪泛攻击

计算机网络笔记(王道考研) 第五章:传输层_第17张图片

解决方案:SYN cookie

TCP的连接释放

计算机网络笔记(王道考研) 第五章:传输层_第18张图片

Round1 由于TCP为全双工,此客户端也有可能为之前的服务端。由于连接释放报文段通常没有数据,所以序号u也可以标识报文段

Round2 此时服务器端仍可以发送数据

Round4 如果客户端发送的确认报文段没有到达服务器端,服务器端会重传连接释放报文段,客户端在2MSL内收到就会重传确认报文段并重新启动2MSL计时器。如果客户端不等待2MSL的时间而是在发送完确认报文段后直接释放连接,报文段丢失时客户端就无法接收服务器端重传的连接释放报文段,服务器端会一直发连接释放报文段而无法正常关闭

TCP可靠传输

TCP可靠传输

计算机网络笔记(王道考研) 第五章:传输层_第19张图片

序号

TCP协议面向字节流,因此TCP传输时以字节为单位,对字节依次编号。实际发送会把多个字节放在一起组成报文段发送,报文段大小不定,取决于链路层MTU

对于文件或者要发送的数据,第一个字节的序号可以是随机的

计算机网络笔记(王道考研) 第五章:传输层_第20张图片

确认

计算机网络笔记(王道考研) 第五章:传输层_第21张图片

发送方在收到对发送报文段的确认之前,TCP缓存区应保留报文段

接收方此时收到了“123”报文段,就会发送一个首部确认号字段为4的确认报文段,在发送方收到后把TCP缓存中的“123”报文段删去

接收方可在合适时候发送确认报文段,也可在要发送数据时把确认信息捎带上,即捎带确认

接收方采用累计确认,只确认数据流当中至第一个丢失字节为止的字节

假如发送端此时发送了“456”和“78”两个报文段,但接收端只接收到了“78”报文段,接收端还是会一直发送确认号为4的报文段。在收到确认号为4的报文后,发送端会重传”456“报文段。在接收端收到”456“报文段后,下次发送的确认号应为9

重传

image-20220822123207691

 

计算机网络笔记(王道考研) 第五章:传输层_第22张图片

 

 

TCP协议也有发送窗口和接收窗口的概念,在发送过程中会使用GBN协议和SR协议,使用时同链路层讲过的大同小异

TCP流量控制

TCP流量控制

计算机网络笔记(王道考研) 第五章:传输层_第23张图片

 

TCP拥塞控制

TCP拥塞控制

计算机网络笔记(王道考研) 第五章:传输层_第24张图片

拥塞控制是全局性问题,接收方并不知道拥塞情况具体是哪几台主机发送数据过多造成的。而流量控制是点到点之间的问题,接收方知道找哪个发送方

拥塞控制四种算法

计算机网络笔记(王道考研) 第五章:传输层_第25张图片

慢开始和拥塞避免

计算机网络笔记(王道考研) 第五章:传输层_第26张图片

cwnd=n表示为n个报文段,长度都为MSS

慢开始cwnd翻倍在收到之前发送报文的确认后立刻发生

快重传和快恢复

计算机网络笔记(王道考研) 第五章:传输层_第27张图片

你可能感兴趣的:(计算机网络,tcp/ip,计算机网络,学习,笔记,王道考研)