【笔记】tcp/ip illustrated <1 introduction>

更新于 2019-09-23  约 7 分钟

一、参考


TCP/IP详解 卷1:协议(英文版)
TCP/IP详解 卷1:协议

二、名词解释


WAN: wide area network 广域网
LAN: local area network 局域网
IP:internet protocol 网际协议
ICMP: internet control message protocol 互联网控制报文协议
IGMP: internet group management protocol 互联网组管理协议
tcp: transmission control protocol 传输控制协议
udp: user datagram protocol 用户数据报协议
FTP: file transfer protocol 文件传输协议
SMTP: simple mail transfer protocol 简单邮件传送协议
SNMP: simple network management protocol 简单网络管理协议
FDDI:fiber distributed data interface 光纤分布式数据接口
ARP:address resolution protocol 地址解析协议
RARP:reverse address resolution protocol 逆地址解析协议
DNS:domain name system 域名系统

三、内容


1. 分层

clipboard.png

四层协议系统:
链路层:也称为数据链路层,网络接口层,通常包含操作系统中设备驱动和网卡,主要处理与电缆(或者其他任何传输媒介)物理接口细节
网络层:也称为互联网层,处理分组在网络中的活动,例如分组的选路,在TCP/IP协议族中,网络层协议包含IP,ICMP,IGMP
运输层:为应用层提供了两台主机之间的数据流,在TCP/IP协议族中,有两种不同的传输层协议TCP,UDP
TCP提供了可靠的数据传输
(1)将应用层发送数据切分为大小合适的块,经由网络层路由发送
(2)确认包是否被接收到,设置超时
UDP则不保证数据的可靠传输,只是将数据报的分组从一台主机发送到另一台主机,并不保证该数据报能到达另一端,需要通过应用层保证数据被接收到
应用层:负责处理特定的应用程序细节

clipboard.png
由上图可见,通常,应用层是一个用户进程,而其他三层(运输层、网络层、链路层)都是在内核中完成的

构造互联网最简单的方法是把两个或者多个网络通过路由器进行连接,路由器是一种特殊的用于网络互连的硬件盒,路由器的好处是为不同类型的物理网络提供连接(以太网,令牌环网,点对点的链接,光纤分布式数据接口等等)

网关:通常指应用层网关,一个连接两种不同协议族的进程,它为某个特定的应用程序服务

clipboard.png

应用层和运输层使用端到端协议,网络层提供的是逐跳协议

一个路由器,根据定义,具有两个或者多个网络接口层,任何具有多个接口的系统,称为多接口的

连接网络除了路由器(主要是在网路层连接不同的网络),还可以使用网桥(在链路层连接网络),例如:使用网桥,可以让多个局域网对于更高层级表现为一个局域网

2. TCP/IP分层

clipboard.png

ICMP: 是IP协议的附属协议,IP层用它来和其他主机或者路由器交换错误报文或者其他重要信息
虽然ICMP主要用于IP层,但应用程序也有可能访问它,Ping和Traceroute这两个主要的诊断工具,都使用了ICMP协议

IGMP: 互联网组管理协议,主要用来将一个UDP数据报多播到多个主机

3. 因特网地址

互联网上的每一个接口都必须有一个唯一标识的因特网地址,又称为IP地址

clipboard.png

clipboard.png

多接口主机有多个IP地址,每一个接口具有一个IP地址

有三种类型的IP地址,单播地址,多播地址,广播地址

4. 域名系统

DNS是一个分布式数据库,由它来提供IP地址和主机名之间的映射关系

5. 封装

当一个应用程序通过TCP协议发送数据,数据将被送入协议栈中,逐个通过每一层,一直到数据在网络中表现为比特流发送
数据经过协议栈每一层都会添加头部信息(有时候需要添加尾部信息)
TCP协议发送数据到IP层的单元,称为TCP报文段,或者简称为TCP段
IP协议发送数据到网络接口的单元,称为IP数据报
经过以太网传输的比特流,称为帧

clipboard.png

以太网帧的大小为46~1500字节
准确的来说,IP层和网络接口之间传输的是一个IP包

TCP,UDP,ICMP,IGMP协议都发送数据到IP层,IP层添加一些类型标识到IP头部,用于表示该IP包属于那一层
IP层通过一个8比特头部信息区分协议,1表示ICMP, 2表示IGMP, 6表示TCP, 17表示UDP

不同的应用可以使用TCP或者UDP协议,传输层协议在头部信息中通过一个16比特的端口号区分不同的应用
网络接口发送接收帧通过IP, ARP, RARP协议,以太网头部中有一个16位帧类型字段,用于表示是哪个网络层协议生成的数据

6. 解复用

当目的主机,收到以太网帧,将会根据不同的头部信息将数据传送到上一层,这个过程称为解复用

clipboard.png

7.客户端-服务端模型

服务端有两种类型:迭代和并发
迭代类型:
(1)等待客户端请求;
(2)处理客户端请求;
(3)将请求响应发送给客户端;
(4)重复等待客户端请求
并发类型:
(1)等待客户端请求;
(2)启动一个新的服务(可能是一个新的进程、线程、任务),处理客户端请求,当新的服务处理完成,服务终止;
(3)重复等待客户端请求
一般来说,TCP服务是并发类型,UDP服务是迭代类型

8.端口号
通常,1到1023端口号是常见的标准的应用,客户端临时端口为1024到5000, 5000以上端口表示不太常见的应用
客户端端口,称为临时端口,因为客户端服务,一般只是运行于客户端启动服务期间,而服务端则一直运行某个特定服务
/etc/services文件中保存应用和端口的对应关系

clipboard.png

clipboard.png

阅读 277更新于 2019-09-23

推荐阅读
目录