- LINUX网络编程基础知识
1.1. TCP/IP协议概述
协议protocol:通信双方必须遵循的规矩 由iso规定 rpc文档
osi参考模型:(应-表-会-传-网-数-物)
è 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
tcp/ip模型4层:
应用层{http超文本传输协议 ftp文件传输协议 telnet远程登录 ssh安全外壳协议 stmp简单邮件发送 pop3收邮件}
传输层{tcp传输控制协议,udp用户数据包协议}
网络层{ip网际互联协议 icmp网络控制消息协议 igmp网络组管理协议}
网络接口层{arp地址转换协议,rarp反向地址转换协议,mpls多协议标签交换}
TCP协议:传输控制协议 面向连接的协议 能保证传输安全可靠 速度慢(有3次握手)
UDP协议:用户数据包协议 非面向连接 速度快 不可靠
通常是ip地址后面跟上端口号:ip用来定位主机 port区别应用(进程)
http的端口号80 ssh–>22 telnet–>23 ftp–>21 用户自己定义的通常要大于1024
1.2. TCP协议
(1) 概述
TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工和可靠交付的服务。它采用许多机制来确保端到端结点之间的可靠数据传输,如采用序列号、确认重传、滑动窗口等。
首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正确的接收一次。
其次,TCP采用具有重传功能的积极确认技术作为可靠数据流传输服务的基础。这里“确认”是指接收端在正确收到报文段之后向发送端回送一个确认(A