文章目录
第一章 TCP/IP协议族
1.1 TCP/IP协议族体系结构及主要协议
- 概述
此图很重要,背下来!!!
- 1.数据链路层
两个地址解析协议:ARP和RARP
链路层主要协议:PPP
(点对点)、CSMA/CD
(广播) - 2.网络层
IP协议
……
ICMP协议
主要用于检测网络连接;
ICMP包含两类报文:差错报文
(用于回传网络错误)、查询报文
(用于查询网络连接,比如ping);
注:ICMP也是封装到IP报文中的
,并不是单独发送的网络层报文!!! - 3.传输层
TCP
可靠、面向连接、基于流;
会在内核中为TCP连接维持一些必要数据结构
,比如连接状态、读写缓冲区、定时器等;
通信结束时,双方必须关闭连接以释放内核资源
;
UDP
不可靠、无连接、基于数据报;
不可靠
:使用UDP的应用层需要自行处理数据确认、重传等;
无连接
:每次发送数据都需要指明接受端的地址(而TCP则不必)
基于数据报
:接受端必须以数据报长度为单位将数据一次读出,否则被截段
SCTP
为了在因特网上传输电话信号而设计
- 4.应用层
应用层在用户空间实现;
链路层、网络层、传输层在内核空间实现
;
应用层程序可能跳过传输层直接使用网络层提供的服务
,比如ping直接使用网络层的ICMP
1.2 封装
-
封装
注以:链路层封装后的以太网帧有尾部
!!! -
以TCP封装为例
注意TCP内核缓冲区
;
TCP发送数据后会继续缓存一段时间;UDP发送后会立即删除UDP内核缓冲区的数据
1.3 分用
- 概述
不管是哪一层,都需要通过该层报文首部的特定字段来向上分用
;只是我们通常只注意到了端口号……
1.4 测试网络
书中的测试网络(局域网),略……
1.5 ARP协议工作原理
-
概述
ARP用于进行网络层地址到物理层地址的转换;
ARP仅限于局域网内
,对于广域网,则是先找到路由器/网关,后续有路由器负责……
所以ARP中的IP地址应该是内网IP
?……
工作原理:主机向自己所在的网络广播一个ARP请求,请求包含目标机器的网络地址;此网络上的其他机器都将收到这个请求,但只有被请求的目标及其会回应一个ARP应答,其中包含自己的物理地址 -
ARP请求/应答报文
-
ARP高速缓存的查看和修改
arp -a :查看arp高速缓存 arp -d IP :删除IP对应的arp缓存 arp -s IP MAC:添加arp缓存
缓存的内容:经常访问或最近访问的机器的IP地址到物理地址的映射(比如
网关地址
),从而避免重复的ARP请求;
网关地址:参考1.8 -
使用tcpdump观察ARP通信过程
详见P10……
1.6 DNS工作原理
- DNS查询和应答报文
16位标识:用于标记一对DNS查询和应答;
16位标志:用于协商具体的通信方式和反馈通信状态
…… - Linux下访问DNS服务
/etc/resolv.conf
:存放DNS服务器的IP地址;
host程序
:用于访问DNS服务器的客户端程序,比如:host -t A www.baidu.com
- 使用tcpdump观察DNS通信过程
相信分析见P15sudo tcpdump -i eth0 -nt -s 500 port domain // 另起一个终端,执行... host -t A www.baidu.com
1.7 socket和TCP/IP协议族的关系
- 概述
1. 链路层、网络层、传输层是在内核实现,socket系统调用使应用程序能够访问内核中这些协议提供的服务
;
2. socket的功能一:将应用程序数据从用户缓冲区复制到TCP/UDP内核发送缓冲区,以交付内核来发送数据
;
3. socket的功能二:应用程序通过它来修改内核中各层协议的某些头部信息或其他数据结构
,从而精细地控制底层通信行为;
4. socket是一套通用网络编程接口,不仅可以访问TCP/IP协议栈,还可以访问其他网络协议栈(比如X.25、UNIX本地域协议栈等)
1.8 网络中的一些设备/概念区分
- 网关和路由器
从概念上理解
网关是不同网络的边缘设备,负责不同网络的数据转发,特点是数据会解包,重新打包,会修改包头数据
=> 数据从内网到公网必须通过网关
路由器不会解包数据,只是利用包头的目的地址匹配自己的路由表
,然后转发到下一跳的路由。
从实现上来说
通常,路由器就有网关的功能
,它既能作为公网私网的连接点,也能负责公网上数据的转发;
但网关不一定必须是路由器,还可以是三层交换机、防火墙
或者插了两块网卡的电脑,只要能作为内网数据的出口即可(即网关不是必须工作在网络层……)
在上拓扑中router1,router3分别是PC1,PC2的网关。PC1------router1------router2------router3-------PC2
那router2呢,那就不是任何一个设备的网关了。
第二章 IP协议详解
2.1 IP服务的特点
- 无状态
指IP通信双方不同步
传输数据的状态信息,所有IP数据报的发送、传输、接收都是相互独立、没有上下文关系的 =>从而无法处理乱序和重复等情况
优点:简单、高效 =>无需为保持通信状态而分配一些内核资源,也无需每次传输数据时都携带状态信息
- 无连接
IP通信双方都不长久地维持对方的任何信息 => 生成协议