导图社区 IP网络基础之传输层
计算机网络:IP网络基础五层模型之传输层。
编辑于2020-11-16 11:05:26IP网络基础之传输层
概述
通信的真正实体为位于通信两端主机中的进程
运输层任务
如何为运行在不同主机上的应用进程提供直接的通信服务
运输层协议又称端到端协议
使用不同的端口(区分进程的标识符)对应不同的进程
运输层向高层用户屏蔽了网络核心的细节
提供的运输协议
面向连接的TCP
无连接的UDP
进程通信与端口号
端口号
数值范围:0~35535
类型
熟知端口号:0~1023
TCP/UDP给Internet服务器进程分配一个确定的全局端口号
由IANA同一分配
注册端口号:1024~49151
IANA分配给新的网络应用程序的服务器程序的端口号
动态端口号:49152~65535
由运行在客户上的TCP/UDP软件随机选取
动态端口号只对一次进程通信有效
UDP常用熟知端口号
53:DNS
域名服务
67/68:DHCP
动态主机配置协议
69:TFTP
简单文件传送协议
161/162:SNMP
简单网络管理协议
520:RIP
路由信息协议
TCP常用熟知端口号
20:FTP
文件传输协议(数据连接)
21:FTP
文件传输协议(控制连接)
23:TELNET
网络虚拟终端协议
25:SMTP
简单邮件传输协议
80:HTTP
超文本传输协议
179:BGP
边界路由协议
TCP协议
特点
支持面向连接的传输服务
支持全双工通信
双方可同时接收发送信息
支持同时建立多个并发的TCP连接
支持可靠的传输服务
支持字节流的传输
首部格式
源端口(16位)、目的端口(16位)
序号(32位)
本报文段所发送的数据的第一个字节的序号
确认号(32位)
期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移(4位)
以4字节为单位
首部长度
保留(6位)
置0
URG(1位)
为1时表明紧急指针字段有效
ACK(1位)
为1时,确认号字段有效
PSH(1位)
尽快交付接收应用进程
RST(1位)
为1时
表明TCP连接中出现严重差错,必须释放连接,而后重连
拒绝一个非法TCP报文或拒绝释放一个连接
SYN(1位)
为1时表示是连接请求或连接接收报文
ACK为0,表明为连接建立请求报文
ACK为1,表明为同一建立连接的响应报文
FIN(1位)
为1时,表明数据发送完毕,并要求释放连接
窗口(16位)
告知对方自己的接收缓存空间
流量控制依据
让对方设置发送窗口的依据
校验和(16位)
范围:首部、数据
计算时,需加上12字节的伪首部
紧急指针(16位)
指出本报文段中紧急数据字节数
紧急数据放在报文段数据的最前面
选项(最大40字节)、填充
其一为MSS(最大段长度)
选择考虑因素
协议开销
IP分片
发送和接收缓冲区的限制
默认值536字节
连接与释放
建立
SYN=1,seq=a→
SYN,ACK=1,seq=b,ack=a+1←
ACK=1,seq=a+1,ack=b+1→
释放
FIN,ACK=1,seq=m,ack=n→
ACK=1, seq=n, ack=m+1←
若需要则继续发送数据
FIN, ACK=1, seq=x, ack=m+1←
ACK=1, seq=m+1, ack=x+1→
传输过程
拉回重传
从未接收到的数据及其之后全部重发
选择重传
仅重发未接收到的数据
流量控制
通过窗口进行
当接收方窗口值为0,发送方停止发送数据
四类计时器
重传计时器
为了控制丢失或丢弃的报文段
发送数据的同时启动
当时间到时,未接受到确认报文,直接发数据
坚持计时器
每个连接使用一个坚持计时器
收到窗口大小为0时,启动
时间到时,发送特殊的探测报文段,告知接收端,非零窗口通知丢失
保活计时器
防止两个TCP之间的连接处于长期空闲
每次收到一次数据,重置一次保活计时器
时长通常为2个小时
当时间到还未接收到数据时,将发送探测报文段
当连续10探测报文段均未接收到响应,则释放连接
时间等待计时器
在连接终止期间使用
确保最后报文的正确接收
服务器最后阶段发给客户端的数据
客户端发给服务器的最后一个ACK报文
时长通常未一个报文段寿命期待值的两倍
UDP协议
常用于传输视频、音频
一种用于实时语音与视频传输的传输层协议
无连接、不可靠
减少了协议开销和传输延迟
提供一种可选的校验和,几乎不提供其他保证数据的措施
收到的分组出错时,直接丢弃,且不做任何处理
使用UDP情况
进程发送报文较短
对报文可靠性要求不高
组成
首部
源端口(2个字节)
目的端口(2个字节)
长度(2个字节)
首部加数据的长度
校验和(2个字节)
校验范围:伪首部、首部、数据
数据
伪首部
仅用于计算校验和
源IP地址
目的IP地址
子主题
适用范围
视频播放类应用
简短的交互式应用
多播与广播应用
TCP与UDP的比较
UDP
无连接
支持一对一、一对多、多对一、多对多通信
对应用层交付报文直接打包
不可靠、无流量控制和拥塞控制
首部开销小,仅8个字节
TCP
首部最小20字节,最大60字节
可靠传输、流量控制、拥塞控制
面向字节流
只能一对一通信
面向连接
下一代网际协议IPv6
相比4,具备的优势
具有更大的地址空间
使用更小的路由表表达更大的地址空间
增加了增强的组播支持以及流支持
加入了对自动配置的支持
具有更高的安全性
首部
版本(4位)
流量类型(8位)
相当于4中的服务类型字段
流标签(20位)
用于标识同一业务流的数据
载荷长度(16位)
下一报文首部(8位)
与4中的协议字段类似
跳数(8位)
类似4中的TTL字段
源地址(128位)
目的地址(128位)
地址表示
每4个十六进制数为一组,用“:”隔开
简化表示:每组前方的0均可省略
连续的多个“全0”段用一对冒号“::”来替代
双冒号只能出现一次!
4兼容的6地址
在4地址之前加上适当的前缀构成6地址
eg:0:0:0:0:0:0:d:1:44:3→0:0:0:0:0:0:13.1.68.3(::13.1.68.3)
IPv6地址方案与CIDR方案类似
通过地址前缀体现网络层次结构(IP地址/地址前缀长度)
过渡技术遵循的原则和目标
保证4与6主机的互通
更新过程避免设备之间的依赖性
即某个设备的更新不依赖其他设备的更新
对于网络管理者和终端用户,过渡过程易于理解和实现
过渡可以逐个进行
用户、运营商可自行决定何时过渡以及如何过渡
过渡主流技术
双栈策略
在6结点中加入4协议栈
具有双协议栈的结点称为“IPv6/IPv4结点”
可收发4、6分组
隧道策略
将6报文封装在4报文中
6隧道两端结点都必须既支持4协议栈又支持6协议栈