端口号(2字节
SYN(1bit)
ACK(1bit)
会话多路复用(为什么一个IP地址可以做很多事情?)
源端口地址可以不同
五元组(世界上没有相同的2个五元组)
源IP地址-目的IP地址-源端口号-目的端口号-协议号
端口
0-65535
0-1023 知名端口号
1024-65535
端口号 | 应用程序 | 中文名字 | 协议 |
---|---|---|---|
20/21 | FTP | 文件传输协议(传大文件的) | TCP |
22 | SSH | 远程管理应用(安全,加密) | TCP |
23 | telent | 远程管用协议(不安全) | TCP |
25 | SMTP | 简单邮件传输协议(只管发邮件) | TCP |
53 | DNS | 域名解析协议 | UDP/TCP |
69 | TFTP | 传小文件的 | UDP |
80 | HTTP | 超文本传输协议 | TCP |
110 | POP3 | 收邮件 | TCP |
161/162 | SNMP | 网络管理协议 | UDP |
179 | BGP | 外部网关路由协议 | TCP |
443 | HTTPS | (HTTP+SSL)安全的http | TCP |
520 | RIP | 动态路由协议 | UDP |
521 | RIPng | 下一代动态路由协议 | UDP |
TCP的可靠性
可靠性的基础
1.数据传输是有序的
2.数据传输是有确认机制的
3.有数据重传机制
4.可靠性的前提是建立一条连接
TCP三次握手
1.第一次握手:Client想要和Sever建立连接,随机产生一个序列号seq=j,将标志位SYN置为1,并将数据包发送给Server,Clinet进入SYN_SENT状态,等待Sever确认。
2.第二次握手:Sever收到数据包知道Client想要建立连接,SYN标志位置为1表示请求和对方建立连接,ACK标志位置为1表示同意建立连接,ack=J+1,client端的seq告诉你我要发数据了发x个,server端发送的x+1是告诉对方,你发的x个数据包我都收到了(确认作用),下次就从x+1开始发吧,发送自己随机产生的序列号seq=K,Server进入SYN_RCVD状态。
3.第三次握手:Client收到确认后,检查ack是否为J+1,ACk是否为1,如果正确则将标志位ACK置为1,ack=K+1,表示收到K之前的数据,并将数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
具体参考博客https://www.cnblogs.com/Qing-840/p/9283367.html
https://www.cnblogs.com/lms0755/p/9053119.html
https://blog.csdn.net/qq_38950316/article/details/81087809
原文:https://www.cnblogs.com/zx125/p/11311739.html