《Linux高性能服务器编程》第1章:TCP/IP协议族

文章目录

一、TCP/IP协议族体系结构以及主要协议

(1)上层协议使用下层协议提供的服务

《Linux高性能服务器编程》第1章:TCP/IP协议族

1.数据链路层

(1)数据链路层实现了网卡接口的网络驱动程序

《Linux高性能服务器编程》第1章:TCP/IP协议族

(2)常用协议是:ARP和RARP协议

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族
(3)
ARP协议的用途:
《Linux高性能服务器编程》第1章:TCP/IP协议族
RARP协议的用途:
《Linux高性能服务器编程》第1章:TCP/IP协议族

2.网络层

(1)网络层的任务

《Linux高性能服务器编程》第1章:TCP/IP协议族

(2)核心协议是:IP协议,重要协议是:ICMP协议

(a)IP协议的工作过程
《Linux高性能服务器编程》第1章:TCP/IP协议族
(b)ICMP的工作过程
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

3.传输层

(1)传输层与网络层的区别

《Linux高性能服务器编程》第1章:TCP/IP协议族
解释:
《Linux高性能服务器编程》第1章:TCP/IP协议族

(2)主要协议:TCP、UDP、SCTP协议

(a)TCP协议的总结

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

(b)UDP协议的总结

《Linux高性能服务器编程》第1章:TCP/IP协议族
(c)SCTP协议
《Linux高性能服务器编程》第1章:TCP/IP协议族

4.应用层

(1)在用户空间或内核中实现应用层的区别

《Linux高性能服务器编程》第1章:TCP/IP协议族

(2)应用层协议:ping应用程序,telnet协议,OSPF协议,DNS协议

《Linux高性能服务器编程》第1章:TCP/IP协议族

(3)应用层协议(or程序)可能跳过传输层直接使用网络层提供的服务,/etc/services查看所有知名的应用层协议

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

二、以太网帧的封装

1.概念

《Linux高性能服务器编程》第1章:TCP/IP协议族

2.TCP报文段的封装过程

《Linux高性能服务器编程》第1章:TCP/IP协议族
解释:
《Linux高性能服务器编程》第1章:TCP/IP协议族

3.UDP数据报

《Linux高性能服务器编程》第1章:TCP/IP协议族

4.IP数据报的特点

《Linux高性能服务器编程》第1章:TCP/IP协议族

5.数据链路层封装成帧(frame)

《Linux高性能服务器编程》第1章:TCP/IP协议族

三、以太网帧的分用

1.概念

《Linux高性能服务器编程》第1章:TCP/IP协议族
以太网帧的分用过程:
《Linux高性能服务器编程》第1章:TCP/IP协议族

2.如何区别以太网帧的IP协议、ARP协议以及RARP协议?

《Linux高性能服务器编程》第1章:TCP/IP协议族

3.由于ICMP、TCP、UDP都是基于IP协议的,如何区别它们?

《Linux高性能服务器编程》第1章:TCP/IP协议族

四、测试网络:所有的客户端、服务器程序都是基于该网络

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

五、ARP协议的工作原理

1.概念

《Linux高性能服务器编程》第1章:TCP/IP协议族

2.以太网ARP请求/应答报文详解

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

3.ARP高速缓存的查看和修改

《Linux高性能服务器编程》第1章:TCP/IP协议族

4.使用tcpdump观察ARP通信过程

(1)具体操作如下,但注意:ARP通信在TCP连接建立之前就已经完成

《Linux高性能服务器编程》第1章:TCP/IP协议族
解释如下:
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族

(2)ARP通信的详细说明,ARP请求和应答是从以太网驱动程序发出来的

《Linux高性能服务器编程》第1章:TCP/IP协议族
解释说明如下:
《Linux高性能服务器编程》第1章:TCP/IP协议族

六、DNS工作原理

1.DNS查询和应答报文详解

(1)DNS将机器的域名转换成IP地址
(2)具体格式如下
《Linux高性能服务器编程》第1章:TCP/IP协议族
(a)16位标识字段的含义
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族
(b)16位的标志字段
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族
(c)其它的4个字段
《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族
解释如下:
《Linux高性能服务器编程》第1章:TCP/IP协议族

2.Linux下访问DNS服务

(1)Linux的/etc/resolv.conf存访DNS服务器的IP地址

(2)访问DNS服务器的客户端程序是host

《Linux高性能服务器编程》第1章:TCP/IP协议族
《Linux高性能服务器编程》第1章:TCP/IP协议族