Linux网络管理超详细讲解(3)

TCP/IP分层模型中,通信界定地址:
物理地址:
以太网地址,MAC地址;
功能:真正的用于本地通信的地址; 使用范围:本地局域网内部且不夸路由设备;

逻辑地址:
在TCP/IP协议栈中,逻辑地址被定义为IP地址;
功能:界定主机到主机的通信地址;点到点通信;逻辑地址仅用于主机定位不用于真正的通信;
使用范围:全球互联网;

逻辑端口号:
在TCP/IP协议栈中
功能:界定进程到进程的通信;

逻辑端口号的组成:
16bits二进制构成;其表示范围为0~65535;
0:他是特殊端口号不做定义;
1-1023:固定服务端口;
FTP:20/TCP,21/TCP
SSH:22/TCP
TELNET:23/TCP
SMTP:25/TCP
DNS:53/TCP,53/UDP
DHCP:
DHCPS:67/UDP
DHCPC:68/UDP
TFTP:69/UDP
HTTP:80/TCP
POP3:110/TCP
IMAP4:143/TCP
SNMP:161/UDP,162/UDP
HTTPS:443/TCP
1024-45121:半固定服务端口;也可以称为注册端口
mysql:3306/TCP
tomcat:8080/TCP,8009/TCP,8005/TCP,8040/TCP
Memcached:11211/TCP
其余端口号:可自由分配使用的端口;

逻辑地址:逻辑端口号——套接字(Socket)
能够界定特定主机上的特定应用程序服务进程;

TCP协议:
1.面向连接:
1)通信开始之前,必须先建立通信双方主机之间的TCP通信连接;
2)在整个通信过程中,必须维持通信双方主机之间的TCP通信连接的稳定性;
3)在通信结束时,必须拆除双方主机之间已建立的TCP通信连接;

TCP协议建立连接的过程:三次握手
a)通信请求发起方,创建一个无数据报文,将其中的SYN标志位置一;
b)接收方在收到建立连接的请求之后,根据给报文的目标端口号判断本地是否有监听此套接字的进程;如果有,即返回确认消息;创建一个无数据报文,将其中的ACK标志位置一,同时将SYNC标志位置一,用户向对方请求建立同步连接;
c)通信请求发起方,再创建一个无数据报文,将其中的ACK标志位置一;
TCP协议拆除连接的过程:四次挥手
a)由任何一方在数据传输结束之后,向另一方发送一个自己创建出来的数据报文,其中FIN标志位置一;
b)收到连接断开请求的一方,会对此请求信息予以确认,创建一个无数据报文,其中ACK标志位置一;
c)此前收到连接断开请求的一方会再次创建一个无数据报文,将其中的FIN标志位置一,向对方请求断开连接;
d)对方在收到此请求报文之后,再创建一个无数据报文,将其中的ACK标志位置一确认断开连接的请求;

TCP协议的有限状态机(TCP FSM)

TCP协议首部:
第一行:
第一字段:源端口号,16bits;
第二字段:目标端口号,16bits;可以手动指定,也可以通过/etc/services文件判断自动解析应用层协议获得;

第二行:
序列号:TCP协议将大数据报文分段的顺序编号,取值范围是0~2^32-2;默认情况下,第一个数据段的序列号为随机选择,以后的数据段的序列号通过计算得到;
第一段:随机产生;
后续其他数据段:前一数据段的序列号+前一数据段的数据部分大小+1;

第三行:
确认号:(下一段的序列号)
接收到的最后一个数据段的下一个数据段的序列号;取值范围1~2^32-1;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17915.html