【计算机网络】Internet原理与技术3 — 端口及套接字、用户数据报协议UDP、传输控制协议TCP
Internet原理与技术
计算机专业基础笔记目录可以点这里:计算机专业基础笔记目录
Internet原理与技术1(IP地址、IP数据报、ARP协议、ICMP协议、子网编址、无分类编址与CIDR、IP分组的转发)
Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)
传输层的作用是在通信子网提供的服务的基础上,为上层应用层提供有效的、合理的传输服务。使高层用户在相互通信时不必关心通信子网的实现细节和具体服务质量。
知识要点:
- 掌握端口的基本概念和应用
-
理解无连接的传输层协议UDP
UDP特点、UDP格式和校验方法 -
掌握面向连接的传输层协议TCP
TCP特点、首部格式、连接管理、可靠传输、流量控制和拥塞控制机制
一、端口及套接字
1、传输层编址
(1)传输层的复用和分用
(2)常用应用进程默认的端口
(3)端口:应用层进程的标识
端口指网络设备内部与外界通交流的出口。
端口作用:
- 数据发送时向下交付给传输层
- 接收数据时向上交付给应用层
端口分类:
-
熟知端口
其数值一般为 0~1023。这些端口号是 TCP/IP 体系确定并公布的。 -
一般端口
数值范围是 1024~ 65535。用来随时分配给请求通信的客户进程。
2、套接字(socket)
3、无连接服务和面向连接服务
二、用户数据报协议UDP
UDP协议格式
【例】校验UDP报文
-
f0 1f af 67 52 a7
:目的MAC地址 -
e4 d3 32 0e 41 66
:源MAC地址 -
08 00
:类型 -
45
:IPv4数据报首部,IP首部20个字节00
-
00 30
:IP数据报总长度48个字节(包括IP数据报首部20个字节)
这里开始是 UDP 协议格式:
-
11
:传输层UDP协议 -
27 a8 d4 d4
:源IP地址 -
c0 a8 01 65
:目的IP地址 -
73 a6 11 72 00 1c
:UDP首部(8字节)-
73 a6
:源端口是29606 -
11 72
:目的端口是4466 -
00 1c
:UDP长度
-
-
4a 73
:校验和 -
4b 55 00 01 24 00 00 08 00 00 00 08 00 00 01 1a 00 00 01 20
:UDP数据(20字节)
计算校验和:
UDP小结
- UDP 不保证可靠交付
- UDP 比 TCP 的开销要小很多
- 实时应用(如IP电话、实时视频会议等),以及广播或者多播,则必须使用 UDP 协议。
UDP实例:
三、传输控制协议TCP
TCP报文格式
标志位的含义:
Wireshark 软件中查看 TCP 报文:
TCP 连接管理
建立连接 - 三次握手
释放连接 - 四次握手
TCP可靠传输
序号确认机制
若收到的报文段无差错,只是未按序号,那么应如何处理?
- 将不按序的报文段丢弃;
- 先将其暂存于接收缓冲区内,待所缺序号的报文段收齐后再一起上交应用层。
超时重传机制
超时重传时间RTO公式:RTO = RTT + 4 × RTTD
往返时延RTT公式:
- RTTnew = RTTsample (第一次测量得到的RTT样本值)
- RTTnew = α × RTTold + (l - α) × RTTsample(第二次以后的测量)
【例题】RTT 估算
如果 TCP 来回路程时间 RTT 的当前值是 32ms,随后应答在 40ms 时候到来,如果取 α=7/8,那么新的 RTT 估算值是多少。
答:根据上面的公式,RTTnew = α × RTTold + (l - α) × RTTsample,可以计算出 RTTnew = 40 * 7/8 + 32 * 1/8 = 33。
定时器
- 重传定时器
- 持续定时器、
- 保活定时器
- 时间等待计时器
TCP流量控制(大小可变滑动窗口)
采用大小可变滑动窗口的方式进行流量控制;
TCP拥塞控制
拥塞控制的基本功能是避免网络发生拥塞,或者缓解已经发生的拥塞
- 为了进行有效的拥塞控制,需要通过拥塞窗口cwnd(congestion window)来进行衡量网络的拥塞程度
- 发送窗口的取值依据拥塞窗口和接收窗口中的较小的值,即 Min[rwnd,cwnd]
- rwnd 在流量控制中已阐述,在下文中将只关注 cwnd。
拥塞控制的四种方式:
- 慢启动
- 拥塞避免
- 快速重传
- 快速恢复
【例】TCP协议综合例题
解:(1)IP数据报中,哪几个是由主机H发送的?
答案:1、3、4 由主机发出,2、5、6 由服务器发出。
(2)根据默认端口,请问该南京邮电大学服务器开通的是什么应用服务?
答案:根据 协议 06
可知是 TCP,目的端口 00 50
(80端口)默认 HTTP 服务。
(3)前三个IP数据报的内容完成了TCP协议的什么功能?
答案:完成了 TCP 的三次握手。
(4)题表中的IP数据报,主机H和服务器分别发送了应用层数据字节数是多少?如果第 7 个报文段是对第 6 个报文段的确认,那确认号应该是多少?
答案:主机H 发送了 536 字节,服务器S 发送了 491 字节。
(5)TCP报文段的窗口值有什么变化?表示什么意思?
知识点总结
1、传输层编址和套接字
- 端口是传输层服务访问点,是应用层进程的标识;
- 套接字就是IP地址和端口的结合,也称为插口,套接口;
- 五元组 = < 源IP地址、源端口、目的IP地址、目的端口、协议 >
2、UDP协议
- 在IP之上增加了端口复用分用和差错控制的功能;
- UDP用户数据报格式。
3、TCP协议
- TCP面向连接,通过三次握手建立连接;
- 序号确认机制和超时重传机制来实现可靠传输;
- 采用大小可变滑动窗口的方式进行流量控制;