1.TCP协议与UDP协议
- TCP协议:传输控制协议
- UDP协议:用户数据报协议
1.1TCP协议与UDP协议的区别
- TCP协议是面向连接的,可靠的,进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输。每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
- UDP协议是无连接的,不保证可靠性的传输层协议。发送方不关心传输的数据是否到达目标主机,数据是否出错等,收到数据的主机也不会告诉发送发是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高。
1.2TCP报文段
TCP报文段:TCP将若干个字节构成一个分组叫报文段;TCP报文段封装在IP数据报中。
- 序号:发送端位每个字节进行编号,便于接收端进行重组
- 确认号:用于确认发送端的信息
- 窗口大小:用于说明本地可接收数据段的数目,窗口大小是可控的
- 端口号:服务端与客服端, http服务,端口号80,是让客户来访问我的;客户端的段可号是随机的,服务端是固定的。数量2^16
1.3控制位
控制位反应的是两台主机处于什么样的状态
- SYN(同步位):SYN=1,请求链接
- FIN(断开位):FIN=1,断开结束
- ACK(确认位):ACK=1,确认关系
- RST (重置位):数据传输有问题,重新传输一次
- URG(紧急位)
- PSH(急切位)
2.TCP建立连接与断开连接
2.1TCP建立连接的过程称为三次握手,如下图所示
PC1想与PC2建立连接,PC1会发送SYN报文,请求连接,Seq=x(数据段的序号),SYN=1(同步位为1,代表请求建立连接);
PC2收到请求包会回复SYN+ACK报文,Seq=y(PC2发送的数据段序号,ack=x+1(确认号,希望PC1回复的报文序号为x+1),SYN=1(同步为为1,代表收到了PC1的请求),ACK=1(确认位为1,代表同意建立连接);
PC1收到PC的回复后会发送一个序号为x+1的数据段,确认号ack=y+1(正式传输数据时,第一个包的序号为y+1),ACK=1(确认位为1,代表同意连接)
2.2TCP断开连接的四次握手
2.3有限状态机
- CLOSED:没有任何连接状态
- LISTEN:侦听状态,等待来在远方TCP端口的连接请求(服务开启http进程,端口号80,端口在帮进程看着有没有人找http)
- SYN-SENT:在发送连接请求后,等待对方确认(同步已发送)
- SYN-RECEIVED在收到和发送一个连接请求后,等待对方确认
- ESTABLISHED代编传输连接建立,双方进入数据传输状态
3常用的TCP协议端口号及其功能
协议 | 端口 | 说明 |
FTP | 21 | FTP服务器所开放的端口 |
TELNET | 23 | 用于远程登陆,可以远程控制管理目标计算机 |
SMTP | 25 | SMTP服务器开放的端口,用于发送邮件 |
HTTP | 80 | 超文本传输协议 |
POP3 | 110 | 用于文本的接受 |
4常用的UDP协议端口号及其功能
协议 | 端口 | 说明 |
TFTP | 69 | 简单文本传输协议 |
RPC | 111 | 远程过程调用 |
NTP | 123 | 网络时间协议 |
标签:协议,握手,报文,SYN,TCP,发送,传输层,连接 From: https://www.cnblogs.com/daiwei-123/p/16886197.html