Tcp_ip
计算机体系结构
各层作用及协议
分层 | 作用 | 协议 |
---|---|---|
物理层 | 通过媒介传输比特,确定机械及电气规范(比特 Bit) | RJ45、CLOCK、IEEE802.3(中继器,集线器) |
数据链路层 | 将比特组装成帧和点到点的传递(帧 Frame) | PPP、FR、HDLC、VLAN、MAC(网桥,交换机) |
网络层 | 负责数据包从源到宿的传递和网际互连(包 Packet) | IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(路由器) |
运输层 | 提供端到端的可靠报文传递和错误恢复( 段Segment) | TCP、UDP、SPX |
会话层 | 建立、管理和终止会话(会话协议数据单元 SPDU) | NFS、SQL、NETBIOS、RPC |
表示层 | 对数据进行翻译、加密和压缩(表示协议数据单元 PPDU) | JPEG、MPEG、ASII |
应用层 | 允许访问OSI环境的手段(应用协议数据单元 APDU) | FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS |
封装
链路层
链路层主要有三个目的:
- 为IP模块发送和接收IP数据报;
- 为ARP模块发送ARP请求和接收ARP应答;
- 为RARP发送RARP请求和接收RARP应答。
PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。
环回接口
re: mtu
网络层
- IP(Internet Protocol,网际协议)是为计算机网络相互连接进行通信而设计的协议。
- ARP(Address Resolution Protocol,地址解析协议)
- ICMP(Internet Control Message Protocol,网际控制报文协议)
- IGMP(Internet Group Management Protocol,网际组管理协议)
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输
不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。
无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。
IP 地址分类:
- IP 地址 ::= {<网络号>,<主机号>}
IP地址类别 | 网络号 | 网络范围 | 主机号 | IP地址范围 |
---|---|---|---|---|
A 类 | 8bit,第一位固定为0 | 0——127 | 24bit | 1.0.0.0——127.255.255.255 |
B 类 | 16bit,前两位固定为10 | 128.0——191.255 | 16bit | 128.0.0.0——191.255.255.255 |
C 类 | 24bit,前三位固定为110 | 192.0.0——223.255.255 | 8bit | 192.0.0.0——223.255.255.255 |
D 类 | 前四位固定为1110,后面为多播地址 | |||
E 类 | 前五位固定为11110,后面保留为今后所用 |
ARP 地址解析协议
ARP为IP地址到对应的硬件地址之间提供动态映射。
RARP是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或 X终端),它需要系统管理员进行手工设置。
ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。可以用apr -a
来进行检查ARP高速缓存
ARP分组格式
ARP实例
RARP 逆地址解析协议
RARP协议是许多无盘系统在引导时用来获取IP地址的。RARP分组格式基本上与ARP分组一致。一个RARP请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应IP地址的响应。应答通常是单播传送的。
ICMP 网际控制报文协议
ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。
ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。
ICMP报文是在IP数据报内部被传输的
检验和字段覆盖整个ICMP报文。
ICMP报文类型
下面各种情况都不会导致产生ICMP差错报文:
- ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)。
- 目的地址是广播地址或多播地址(D类地址)的IP数据报。
- 作为链路层广播的数据报。
- 不是IP分片的第一片。
- 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。
对于其他类型的ICMP查询报文,服务器必须响应标识符和序列号字段。另外,客户发送的选项数据必须回显,假设客户对这些信息都会感兴趣。
ping程序
IP数据报中的RR选项的一般格式
运输层 tcp—udp
UDP(User Datagram Protocol,用户数据报协议)是 OSI(Open System Interconnection 开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,其传输的单位是用户数据报。
UDP首部
UDP数据报中的伪首部
UDP数据报和TCP段都包含一个12字节长的伪首部,它是为了计算检验和而设置的。其目的是让UDP两次检查数据是否已经正确到达目的地。
IP分片
- 在分片时,除最后一片外,其他每一片中的数据部分(除 I P首部外的其余部分)必须是 8 字节的整数倍。
- 位于@符号后的数字是从数据报开始处计算的片偏移值。
- IP数据报是指IP层端到端的传输单元(在分片之前和重新组装之后)
- 分组是指在IP层和链路层之间传送的数据单元。
- 一个分组可以是一个完整的IP数据报,也可以是IP数据报的一个分片。
ICMP不可达差错
发生ICMP不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。如果路由器没有提供这种新的ICMP差错报文格式,那么下一站的MTU就设为0。