传输层概述
主要学TCP和UDP协议,为应用层提供通信服务,使用网络层的服务
只有主机才有的层次(路由器到网络层就没了)
传输层功能
-
1.提供进程与进程之间的通信
-
2.复用和分用
-
3.传输层对收到的报文进行差错检测。
-
4.传输层的两种协议。
TCP UDP差异
面向连接的传输控制协议TCP
传送数据之前必须建立连接,数据传送结束后要释放连接。
不提供广播或多播服务。
由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
可靠,面向连接,时延大,适用于大文件。
无连接的用户数据报UDP
无连接的用户数据报协议UDP传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
不可靠,无连接,时延小,适用于小文件。
传输层的寻址与端口
复用和分用
复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
分用:传输层从网络层收到数据后交付指明的应用进程。
端口
端口:是传输层的SAP,标识主机中的应用进程。
有逻辑端口。软件端口
端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
端口号长度为16bit,能表示65536个不同的端口号。
端口分类
常用的熟知端口号
套接字
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
用户数据报协议UDP
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
1.UDP是无连接的,减少开销和发送数据之前的时延。
2.UDP使用最大努力交付,即不保证可靠交付。
3.UDP是面向报文的,适合一次性传输少量数据的网络应用。
什么叫面向报文?应用层给UDP多长的报文, UDP就照样发送,即一次发一个完整报文,不能过大也不能过小。
4.UDP无拥塞控制,适合很多实时应用。
5.UDP首部开销小,UDP:8B,TCP:20B。
UDP首部格式
UDP长度:UDP用户数据报的整个长度。
UDP检验和:检测整个UDP数据报是否有错,错就丢弃
分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。
UDP校验
伪首部
在UDP数据报之前,会加一个伪首部,模仿的是IP首部
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
伪首部:前两个字段是地址。第三个字段固定位0,。
第四个字段17:封装UDP报文的IP数据报首部协议字段是17。
第五个字段UDP长度:UDP首部8B,加上数据部分长度(不包括伪首部)。
校验过程
首先把这个加上伪首部的UDP数据报,写成一个个16位的数
在发送端:
1.填上伪首部
2.全0填充检验和字段
3.全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
4.伪首部+首部+数据部分采用二进制反码求和
5.把和求反码填入检验和字段
6.去掉伪首部,发送
在接收端
1.填上伪首部
2.伪首部+首部+数据部分采用二进制反码求和
3.结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。
标签:UDP,首部,报文,端口,计算机网络,传输层,数据 From: https://www.cnblogs.com/nekodream/p/18076445