前言:
传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有有复用和分用功能。传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。
TCPUDP_3">1.TCP协议和UDP协议
TCP(Transmission Control Protocol),即传输控制协议
UDP(User Datagram Protocol),即用户数据报协议
TCP是面向连接的、可靠的进程到进程通信的协议
TCP提供全双工服务,即数据可在同一时间双向传输
TCP报文段
关键词:连接,可靠,全双工服务
目前数据传输大部分用的是TCP协议,在出现网路壅塞等特殊情况,会等等再走,可靠性高
TCP_22">2.TCP报文段格式
源端口号(16bits):发送端口
目标端口号(16bits):接收端口
序号(32bits):发送端对数据进行编号,便于接收端重组
确认号(32bits):用来确认发送端的信息
URG(1bit):紧急指针位,1表示开启,开启紧急指针(16bits)
ACK(bit):确认位
PSH(1bit):当PSH=1时,直接发往应用层,不经过缓存;(数据先放在缓存当中,在缓存里先后提取)
这两种并不会经常触发
RST(bit):重新建立连接时用上它
SYN:(1bit) 同步连接位,连接时SYN=1
FIN(1bit); 断开
窗口大小(16bits):指示接收到的数据大小,是可变的
校验和(16bits):校验作用
紧急指针(16bits):数据是否紧急
选项:做为保留
其中,ACK,SYN,FIN最重要(涉及到三次挥手和四次握手)
TCP_60">3.TCP三次握手
首先PC1发送【SYN=1(申请连接)】的报文段1【Seq(序号)=x】,
然后PC2接到这个报文段1后回复【ACK=1(确认知晓)并且SYN=1(也申请连接)】报文段2【Seq(序号)=y,Ack(确认号)=x+1,x+1,表示PC1对上个报文段1已接收到的的确认】;
最后PC1接收到PC2的报文段2后第二次向PC2发送【ACK=1(确认知晓)】报文段3【Seq(序号)=x+1,Ack(确认号)=y+1,y+1表示PC1对上个报文段2已接收到的的确认】;
这样TCP连接就建立了。
TCP_72">4.TCP四次挥手
PC1发起断开连接请求,也就是发送【FIN(断开)=1,ACK(确认知晓)=1】报文段1;
PC2接收到到报文段1后,会发送【ACK(确认知晓)=1】报文段2;
此时有两种情况,一种是PC2没有在向PC1传输数据,一种是PC2还有正在传输的数据,这里统一先发送一次【ACK(确认知晓)=1】报文段2,然后再发【FIN(断开)=1,ACK(确认知晓)=1】报文段3;
PC1收到报文段3,会发送【ACK(确认知晓)=1】报文段4;
此时TCP连接就这样关闭了
UDP_90">5.UDP协议介绍
UDP协议
- 无连接、不可靠的传输协议
- 花费的开销小
UDP报文的首部格式
6.常见协议及其端口
常用的UDP端口号及其功能
端口 | 协议 | 说明 |
---|---|---|
69 | TFTP | 简单文件传输协议 |
111 | RPC | 远程过程调用 |
123 | NTP | 网络时间协议 |
TFTP跟FTP类似,简单文件传输协议
NTP网络时间协议,很重要
常用的TCP端口号及其功能
端口 | 协议 | 说明 |
---|---|---|
21 | FTP | FTP服务器所开放的控制端口 |
23 | TELNET | 用于远程登录,可以远程控制管理目标计算机 |
25 | SMTP | SMTP服务器开放的端口,用于发送邮件 |
80 | HTTP | 超文本传输协议 |
110 | POP3 | 由于邮件的接收 |
FTP 文件服务器
TELNET 远程连接,明文形式发送(不能用在广域网上)
STMP 邮件发送协议
HTTP 网站协议
POP3 邮件接收协议