TCP/IP协议浅谈
1、TCP协议
面向连接、可靠的、通过字节流传输的协议
它是TCP/IP参考模型的传输层,传输层的目的是建立端与端之间的通信,也就是表现在Ip的端口与端口之间的通信建立
它的功能是由操作系统提供,让应用程序之间实现通信
-
1.1 面向连接
数据在通信开始之前先做好通信两端之间的准备工作,也就是三次握手的连接建立
-
1.2 可靠
通过***、确认应答、重发控制、连接管理及窗口控制机制实现可靠性传输。
-
1.3 确认应答
通过肯定的确认应答实现可靠连接。发送端将数据发出之后会等待对端的确认应答。
-
1.4 ***
***是识别解决发送端数据丢失或确认应答丢失的情况,从而进一步用重发控制解决丢失问题。
- TCP的seq/ack序号是如何变化的?
Seq:发送端读取data stream的开始位置,从0序号开始。
Ack:期望对端下次发送的data stream的开始位置,目的为了对端在发送数据前,检验对端seq(对端的值)+1=Ack
- TCP的seq/ack序号是如何变化的?
-
1.5 连接管理
- 建立连接
标志位:[SYN]=1>>请求建立连接
三次握手,为了确保双方的发送和接收功能都正常,为了保证性能,握手的次数要求尽可能少
- 断开连接
标志位:[FIN=1]>>请求断开连接
四次挥手,因为TCP协议通信是全双工,双方都可以同时收发数据,所以要确认方数据是否都接受完成
- 建立连接
-
1.6 字节流
数据在网络传输的时候要转成字节
2、IP协议
寻址跨越网络传送数据包
它是TCP/IP参考模型的网络层。广域网通信是用IP通信的,局域网是MAC地址寻址,当然也用到ARP协议在局域网,把IP转成MAC地址通信。
它的功能是由操作系统提供,连接两台主机
-
2.1 ip地址组成
网络部分:标识子网
主机部分:标识主机例子:已知IP地址192.168.1.1和192.169.1.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,
192.168.1.1: 1100 0000.1010 1000.0000 0001.0000 00001
AND
255255.255.255.0: 1111 1111.1111 1111.1111 1111.0000 0000
1100 0000.1010 1000.0000 00001.0000 0000
192.168.1.2: 1100 0000.1010 1000.0000 0001.0000 00010
AND
255255.255.255.0: 1111 1111.1111 1111.1111 1111.0000 0000
1100 0000.1010 1000.0000 00001.0000 0000
AND运算得网络地址结果相等:1100 0000.1010 1000.0000 00001.0000 0000->192.168.1.0
参考图解TCP/IP
参考林海峰老师的网络基础https://www.cnblogs.com/linhaifeng/articles/5937962.html