概述
- TCP/IP 分四层:链路层、网络层、运输层、应用层
- 传输协议:TCP (传输控制协议)、UDP(用户数据报协议)
- 各类IP地址范围
类型 | 范围 |
---|---|
A | 0.0.0 - 127 .255.255.255 |
B | 128 .0.0 - 191 .255.255.255 |
C | 192 .0.0 - 223 .255.255.255 |
D | 224 .0.0 - 239 .255.255.255 |
E | 240 .0.0 - 247 .255.255.255 |
- TCP和UDP采用
16bit
端口号识别应用程序 - 知名 TCP/IP 端口
1~1023
之间:FTP(21)、Telnet(23) - 多数 TCP/IP 临时端口分配
1024-5000
之间 - Unix下
/etc/services
包含了熟知的端口号 - 网络层(IP)提供点到点的服务,运输层(TCP/UDP)提供端到端的服务
- 使用 TCP/IP 协议的应用程序通常采用两种应用编程接口(API):socket 和 TLI(运输层接口:Transport Layer Interface)。前者有时称作 “Berkeley socket”
链路层
以太网和IEEE 802封装
- 链路层三个目的
- 为 IP 模块发送和接收 IP 数据报
- 为 ARP 模块发送 ARP 请求和接收 ARP 应答
- 为 RARP 发送 RARP 请求和接收 RARP 应答
- 当今 TCP/IP 采用的主要局域网技术为 以太网,采用一种称作 CSMA/CD 的媒体介入方法
- 802.3针对整个 CSMA/CD 网络、802.4针对令牌总线网络、802.5针对令牌环网络
IP:网际协议
不可靠:不保证 IP 数据报能成功到达目的地。错误处理算法:丢弃该数据报之后发送 ICMP 消息给信源端
无连接:IP不维护任何关于后续数据报的状态信息。
TTL
(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。通常由源主机设置(通常为32或64),经过一个路由,值减1,为0时,数据报呗丢弃,并发送ICMP
报文通知源主机
IP首部始终是32 bit 的整数倍
- 为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是IP路由选择机制的另一个基本特性
- 子网寻址,A类、B类分配容纳主机数为2的24次方-2和2的16次方-2
- 点对点链接始终会带来问题,因为它一般在两端都需要IP地址
ARP:地址解析协议
ARP
为 IP 地址到对应的硬件地址之间提供动态映射。- 在 ARP 背后有一个基本概念,那就是网络接口有一个硬件地址(一个48 bit的值,标识不同的以太网或令牌环网络接口)。
- ARP 的功能是在32 bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。
- ARP 高效运行的关键是由于每个主机上都有一个 ARP 高速缓存,存放了最近 Internet 地址到硬件地址之间的映射记录,每一项的生存时间一般为20分钟
- ARP 请求或应答来说,帧类型的值为
0x0806
- 操作字段指出四种操作类型,它们是 ARP 请求(值为1)、ARP 应答(值为2)、RARP 请求(值为3)和 RARP 应答(值为4)
- 由于 ARP 请求或回答的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头,因此,每一帧都必须加入填充字符以达到以太网的最小长度要求:60字节。
- 大多数的 BSD 实现把完成 TCP 连接请求的时间限制设置为75秒
RARP:逆地址解析协议
- RARP 协议是许多无盘系统在引导时用来获取 IP 地址的
- RARP 请求或应答的帧类型代码为0x8035,而且 RARP 请求的操作代码为3,应答操作代码为4
- RARP 请求以广播方式传送,而 RARP 应答一般是单播(unicast)传送的
ICMP:Internet 控制报文协议
- ICMP 经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP 报文通常被IP层或更高层协议(TCP或UDP)使用。一些 ICMP 报文把差错报文返回给用户进程。
- ICMP 报文是在 IP 数据报内部被传输的
Traceroute 程序
- 开发
Traceroute
程序的原因:
- 在IP首部选项字段中最多只能存放9个IP地址,不能存放当前大多数的路径
- Traceroute 程序只需要目的端运行一个UDP模块—其他不需要任何特殊的服务器应用程序
Traceroute
输出
- 输出的第1个无标号行给出了目的主机名和其IP地址,指出 traceroute 程序最大的TTL字段值为30。40字节的数据报包含20字节IP首部、8字节的 UDP 首部和12字节的用户数据(12字节的用户数据包含每发一个数据报就加1的序列号,送出 TTL 的副本以及发送数据报的时间)
- 使用 traceroute 程序的-g选项,可以为宽松的源站选路指明一些中间路由器
IP选路
- IP 执行选路机制,而路由守护程序则一般提供选路策略。
netstat
对于一个给定的路由器,可以打印出五种不同的标志(flag):
- U 该路由可以使用。
- G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。
- H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
- D 该路由是由重定向报文创建的(9.5节)。
- M 该路由已被重定向报文修改(9.5节)。
- 对于点对点链路和环回接口来说,路由是到达主机(例如,设置H标志)。对于广播接口来说,如以太网,路由是到达网络。
- 路由表项的内容:
- 5bit标志、
- 目的IP地址(主机、网络或默认)、
- 下一站路由器的IP地址(间接路由)或者本地接口的IP地址(直接路由)及指向本地接口的指针
动态路由协议
名词解释
IGP
(Interior Gateway Protocol) 内部网关协议 或者叫 域内选路协议
OSPF
(Open Shortest Path First) 开放最短路径优先
EGP
(Exterier Gateway Protocol) 外部网关协议
HELLO
1986年在原来NSFNET骨干网上使用的较早的IGP协议
- 选路信息协议 (RIP)—最常用
- Internet 是以一组自治系统(AS,Autonomous System)的方式组织的,每个自治系统通常由单个实体管理
- 常常将一个公司或大学校园定义为一个自治系统。
- 每个自治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议我们称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)
- Unix 系统上常常运行名为 routed 路由守护程序
UDP:用户数据协议
- UDP 不提供可靠性:它把应用程序传给 IP层 的数据发送出去,但是并不保证它们能到达目的地
- UDP 检验和覆盖 UDP 首部和 UDP 数据
- UDP 检验和(事实上,TCP/IP协议簇中所有的检验和)是简单的16 bit和
- 客户程序使用ephemeral端口号一般在1024~5000之间
- 尽管IP分片过程看起来是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报,因为 IP 层本身没有超时重传的机制
- TCP 有超时和重传机制,但 UDP 没有。一些 UDP 应用程序本身也执行超时和重传
- IP 数据报是指 IP 层端到端的传输单元(在分片之前和重新组装之后)
- 分组是指在 IP 层和链路层之间传送的数据单元。一个分组可以是一个完整的IP数据报,也可以是 IP 数据报的一个分片
- 理论上,IP 数据报的最大长度是65535字节,这是由 IP 首部16比特总长度字段所限制的
- 去除20字节的IP首部和8个字节的 UDP 首部,UDP 数据报中用户数据的最长长度为65507字节
广播和多播
- 广播和多播仅应用于 UDP
- 对于以太网,当地址中最高字节的最低位设置为1时表示该地址是一个多播地址,用十六进制可表示为 01:00:00:00:00:00(以太网广播地址 ff:ff:ff:ff:ff:ff 可看作是以太网多播地址的特例)
- D类IP地址被称为多播组地址
TCP链接的建立与终止
标志 | 3字符缩写 | 描述 |
---|---|---|
S | SYN | 同步序号 |
F | FIN | 发送方完成数据发送 |
R | RST | 复位链接 |
P | PSH | 尽可能快的将数据送往接收进程 |
. | 以上四个标志比特均置为0 |
未完待续… …