标签:lis 重复 服务 icm rar 时间 协议栈 mtu 字节
开放互联网参考模型
OSI
应用层
表示层
会话层
传输层 乱序重排,重新请求包
网络层
数据链路层 数据帧
物理层 比特流
TCP/IP四层模型
应用层 FTP HTTP
传输层 TCP UDP
网络层 IP ICMP IGMP
链路层 ARP RARP
封装
用户数据 应用层
APP头部 + 用户数据 应用层
TCP头部 + APP头部 + 用户数据 传输层
IP头部 + TCP头部 + APP头部 + 用户数据 网络层
以太网头部 + IP头部 + TCP头部 + APP头部 + 用户数据 链路层
对等通信,协议栈
TCP<---------------->TCP
解封(分用)
从链路层解析头部至对应层
用端口区分是哪个应用程序
MTU: 最大传输单元
IP层数据大于 MTU 要分片(自动进行)
链路层只识别 MAC 地址 即物理地址
IP ----> MAC 地址解析 ARP
MAC -------->IP 反向地址解析 RARP (无盘工作站)
ping ip
不是ip地址则转成ip地址(gethostname)
发送 ICMP (ICHO包)
没有MAC地址
广播 ARP 请求
请求的主机保存地址并回应
根据回应发送 ICMP
三次握手,四次断开,TCP/IP11种状态
TCP
不可靠表现 解决方法
差错 校验和(网际校验和)
丢包 超时重传+确认机制
失序 通过序号保证
重复 通过序号保证
UDP
无连接,不可靠,相对高效
TCP 发送数据并启动定时器,收到消息校验正确并返回确认,在一定时间内没有确认就进行超时重传
滑动窗口协议:(可用于流量控制)
MSS:最大段大小 (IP层分片相关)
通告接收窗口(rwnd): 对方缓冲区
拥塞窗口(cwnd): 网络承受能力
发送窗口去上面两个的最小值
慢启动阀值(ssthresh)
慢启动阶段:cwnd从1按指数增加到ssthresh
拥塞避免阶段:cwnd按线性增长至拥塞,cwnd - 1, ssthress减半
大端字节序
数据高位保存于内存低地址
小端字节序
数据高位保存于内存高地址
规定大端字节序为网络字节序
服务器维持两个队列,一个是完成三次握手的队列,一个是正在进行三次握手的队列
server init--->bind-->listen-->accept-->close
client init-->connect-->close
服务器要绑定任意地址,设置绑定地址重复利用
使用信号处理僵尸进程,用信号处理管道破裂问题
kill -l
ps -au user
netstat -an | grep post
TCP 基于字节流,无边界,会产生粘包问题
UDP 基于消息传输服务,数据报
应用层向socket缓冲区写入数据,MSS等限制,可能会分片
解决方法:
1、定长包
2、特定字符结尾边界(FTP ‘\r\n‘)
3、加包头记录长度
4、其他的应用协议
ssize_t: 有符号数
size_t: 无符号数
获取地址:IP+端口
gethostname
getpeername
标签:lis 重复 服务 icm rar 时间 协议栈 mtu 字节
原文地址:http://www.cnblogs.com/heidekeyi/p/7291213.html