Linux TCP 传输协议

来源:互联网 发布:模拟退火算法c代码 编辑:程序博客网 时间:2024/05/29 04:25

Linux TCP vs UDP 网络编程

网络模型:

ISO(理论)7  VS    TCP/IP(实际)4应用层     ->      应用层     http/ftp/ssh表示层会话层传输层     ->      传输层     TCP/UDP网络层     ->      网际层      路由器(IP)IPCM/ARP链路层     ->      数据链路层   网卡/交换机物理层                         网线/集线器  
TCP(Transmission Control Protocol,传输控制协议):

是面向连接的协议,在正式收发数据前,必须和对方建立可靠的连接。使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。

TCP三次握手过程
  • 1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,
    主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.
  • 2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
    我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我
  • 3 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:”我已收到回复,我现在要开始传输实际数据了
    这样3次握手就完成了,主机A和主机B 就可以传输数据了.
    3次握手的特点
    没有应用层的数据
    SYN这个标志位只有在TCP建产连接时才会被置1
    握手完成后SYN标志位被置0

这里写图片描述
三次握手建立连接
这里写图片描述

Linux使用tcp 网络编程:

客户端 服务器 socket socket - bind - listen connect accept write/read read/write
0 0
原创粉丝点击