运输层读书笔记

运输层

一、概要

1.功能:

      运输层提供进程之间端到端的逻辑通信,网络层提供主机之间的逻辑通信;

    运输层的功能 = 网络层 + 复用与分用(端口) + 流量控制 + 拥塞控制 +可靠传输(TCP)

2.端口

   本质:端口是应用层协议进程与运输实体间交换数据的16位的地址

   分类:服务器端的端口号:<1023,固定且公开,例如:HTTP端口号为80,HTTPS端口号为443;

                            别名:熟知端口号,系统端口号

                           <49132,登记端口号

         客户端的端口号:  <65535,只具有本地意义,在需要时由操作系统分配,用完之后操作系统回收

                           别名:短暂端口号

   拓展:如果填写的端口号不正确,ICMP协议会向发送方发送端口不可达的差错报文。

3、两大协议

    UDP协议:user date protocal,用户数据报协议。PUD为用户数据报

    TCP协议:transfer control protocal,传输控制协议。PDU为报文段

    使用TCP协议的协议:HTTP、SMTP、TELNET、FTP

                       我所知道的其他的用的都是UDP

二、UDP协议

1 特点

      (1)无连接,尽最大努力的交付(一句话就是不可靠)

      (2)面向报文(应用层给什么就加个首部发给IP层,无流量控制与拥塞控制的功能)

      (3)支持多播(TCP只能一对一,因为TCP连接时两个套接字决定了TCP只能一对一)

      (4)首部格式简单(只有源地址,目的地址,长度,检验和,4*2=8个字节)

2、UDP报文格式

端口

目的端口

长度:用户数据报的长度,最小为8

检验和

    在进行检验和时会在前面添加12个字节的伪首部(源IP地址,目的IP地址,协议字段等),发送的UDP数据报总是双字节的,

如果不够,结尾添0然后进行二进制反码求和,接收方把伪首部和发送过来的数据包也进行二进制反码求和,二者相加,结果

应全为1(不懂里面的数学原理)

三、TCP协议

1、特点

     (1)面向连接(套接字)的运输层协议,可靠交付(可靠传输协议)

                  面向连接:套接字或插口 IP地址:端口号  TCP协议只能一对一通信

     (2)面向字节流(流量控制、拥塞控制),TCP发送的报文段所含字节多少取决于对方给出的窗口值以及当前网络的拥塞情况

                  报文段大小 = min(对方窗口值,拥塞窗口)

     (3)提供全双工通信(TCP连接的两端都设有发送缓存和接收缓存,窗口值小于接收缓存)

2、首部格式

      (1)源端口和目的端口各占2字节

      (2)序号,4个字节,序号使用mod2^32运算,TCP传送的字节流中每一个都按顺序编号,首部中序号字段值代表

                     本报文段所发送数据的第一个字节的序号。

      (3)确认号,4个字节, 期望收到对方下一个报文段的第一个数据字节的序号,即本次的确认号 = 下一次对方报文段的 序号

      (4)数据偏移,4个字节,报文段数据部分距离报文段开始处有多远,即TCP的首部长度(20字节 + 可选项),

                      注意: 数据偏移数值的单位为4个字节(32位),首部最大长度为15*4=60字节。

      (5)紧急URG ,1个字节,URG = 1 时有效,在发送区可以插队排到 最前面去,与紧急指针字段配合使用

      (6)紧急指针,2个字节,紧急指针指出了紧急数据的末尾在报文段中的位置。

                      注意:窗口为零时,也可发送紧急数据。

      (7)ACK  1个字节,ACK = 1时有效,在TCP连接建立后所有传送的报文段都必须把ACK置为1

      (8)PUSH 1个字节,笔者觉这有URG就够了

      (9)复位RST 1个字节 RST=1时  TCP连接出现严重的错误,必须释放连接,重新建立

                            拒绝一个非法的报文段

                            拒绝打开一个连接

      (10)同步SYN   1个字节 SYN = 1时,表示这是一个连接请求或连接接收报文

                            连接请求:SYN=1,ACK=0

                            连接接收:SYN=1,ACK=1

      (11)终止FIN 1个字节 FIN=1时,释放一个连接,表明此报文段的发送方的数据以及发送完毕,并要求释放运输连接。

      (12)窗口 2个字节   窗口指的是发送本报文段的一方的接收窗口。窗口值作为接收方让发送方设置其发送窗口的依据 

                           窗口值明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着。

      (13)时间戳选项 10个字节 = 时间戳值字段4 + 时间戳回送回答6 。用途如下

                             计算RTT,发送方发送报文时将当前系统时间写入时间戳字段,接收方接收到该报文段时,将

                          时间戳字段复制到时间戳回送回答字段,当发送方收到确认报文后,可以准确地计算RTT

                             防止序号绕回,区分新旧报文,用2.5Gbit/s的速率发送报文时,不到14秒序号就会重复TCP序号

                         大于2^32时,TCP报文段序号会出现相同的值。

       (14)选项 长度可变,最长40字节,

       (15)保留字段

summary:

        6个一字节的:URG ACK PUSH RST SYN FIN

        重要字段(I THINK) 窗口 指出允许对方发送的数据量

                            偏移字段,序号,确认号,仿佛都是用来定位的       

        

猜你喜欢

转载自www.cnblogs.com/nonebrightmoon/p/11705936.html