tcp/ip协议学习笔记

tcp/ip协议栈与数据包封装
osi (open system interconnection)开放系统互连参考模型
应用层
表示层
会话层
传输层
网络层
数据连路层
物理层 以电信号传递


tcp/ip网络协议栈分为四层:


1 应用层 application (telnet、 ftp、 e_mail)


2 传输层 transport (tcp、udp)
tcp协议面向连接,建立链接,丢失数据包自动重发,保证数据收发的可靠性
udp协议不面向连接,像寄信写好后放到邮箱,不能保证可靠性,需要应用程序自行完成


丢包重发,消息排序
端到端的传输


3 网络层 network (ip、 icmp、 cgmp)
ip协议,点到点的传输
路由器工作在此层(兼交换机功能),在不同链路层接口转发数据包(拆掉网络层和链路层


首部重新封装)

4 链路层 link (设备驱动程序的接口卡)
有以太网/令牌环网
负责网卡设备的驱动,帧同步,冲突检测,数据差错效验
交换机是工作在此层,在不同链路层间转发数据帧(进来的数据包拆掉链路层首部重新


封装)

以太网的帧格式(rfc 894)
1 目的地址 源地址 类型 数据 crc
6 6 2 46-1500 4
mac地址 mac地址 mtu 校验码




2 类型 ip数据报
2 46-1500


3 类型 arp请求/应答 pad
2 28 18


4 类型 rarp请求/应答 pad
2 28 18




arp的数据报格式(在自动获取ip的本地网络中容易出的arp问题)
源主机发arp 请求广播到本地网段(首部填FF:FF:FF:FF:FF:FF),目的主机接收到广播


请求,检查ip地址是否与本机相同,相同则发送一个arp应答数据包(添加本机硬件地址)给源


主机,

查看arp缓存表 arp -a

arp数据报格式
以太网 以太网 帧类型 硬件 协议 硬件 协议 op 发送端 发送端


目的 目的
目的地址 源地址 类型 类型 地址长度 地址长度 以太网地址 ip地址


以太网地址 ip地址
6 6 2 2 2 1 1 2 6 4


6 4



ip 数据报格式
版本 首位长度 服务类型(tos) 总长度 源ip 目的ip 选项 数据
4 4 8 标志(3)+片偏移13 32 32


应用层数据通过协议栈发送到网络上时,每层协议都要加上一个数据首部(header)
称为封装(encapsulation)


最后:以太网首部 / ip首部 / tcp首部 / 应用数据 / 以太网尾部
帧frame 数据报 段segment
datagram




主机收到数据包后的过程
以太网驱动程序 确定数据帧的有效载荷(playload,去除协议首部之外实际传输的数据) 是


ip/arp/rarp协议的数据报,交由相应的协议处理,(提到arp确实让人头疼的问题)
ip 确定是tcp/udp/icmp/igmp
如果是tcp/udp 根据首部的端口号字段确定交由哪个用户进程





udp
段格式:
源端口号 目的端口号 数据
16 16
tcp
段格式(60字节)
源端口号 目的端口号 位序号 确认位序号 首部长度 选项 数据
16 16 32 32 4

猜你喜欢

转载自retacn-yue.iteye.com/blog/1722519
今日推荐