TCP/IP详解卷一读书笔记-第一章概述
1.1分层
TCP/IP协议族分为4层:
- 链路层(数据链路层或网络接口层):负责处理传输媒介的物理接口细节。
- 网络层(互联网层):负责处理分组在网络中的活动(e.g.分组的选路)。常见的网络层协议有:IP,ICMP(Internet互联网控制报文协议),IGMP(Internet组管理协议)。
- 运输层:主要为主机的应用程序提供端到端的通信。在TCP/IP协议族中包括TCP(传输控制协议)和UDP(用户数据报协议)
- 应用层:负责处理特定的应用程序细节。Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送协议、SNMP简单网络管理协议。
端系统(End system):网络边缘的主机。
中间系统(Intermediate system):中间的路由器。
应用层和运输层使用端到端(End-to-end)协议。
网络层提供逐跳(Hop-by-hop)协议。
TCP在网络层IP协议提供的不可靠服务的基础上通过超时重传、发送和接受端到端的确认分组等机制提供了一个可靠的运输层服务。
UDP为应用程序发送和接受数据报,是不可靠的。一个数据报是指从发送方传输到接受方的一个信息单元。
TCP和UDP均为运输层协议,均使用IP作为网络层协议。
ICMP是IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。应用程序(Ping Traceroute)也可直接访问ICMP协议。
IGMP是Internet组管理协议,用来把一个UDP数据报多播到多个主机。
ARP(地址解析协议)与RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的用以转换IP层和网络接口层使用的地址的协议。
常见因特网五层协议栈包括:应用层、运输层、网络层、链路层和物理层。
七层ISO OSI参考模型包括:应用层、表示层、会话层、运输层、网络层、链路层和物理层。
表示层的作用是使通信的应用程序能够解释交换数据的含义。(数据压缩、数据加密、数据描述)
会话层的作用提供数据交换定界和同步功能。(建立检查点和恢复方案的方法)
会话层和表示层在实际开发中常常有应用开发者构建。
1.2互联网的地址
IP地址长32bit,常用点分十进制表示法表示,分为地址格式分为5种。
多接口主机具有多个IP地址,每个接口对应一个IP地址。
有三类IP地址:单播地址(目的地为单个主机)、广播地址(目的地为给定网络上的所有主机)以及多播地址(目的地为同一组内所有主机)
地址分配由互联网络信息中心(InterNIC)管理的,InterNIC分配网络号,系统管理员分配主机号。
路由汇聚:把一组路由汇聚为一个单个的路由广播。最终结果和最明显的好处是缩小网络上的路由表的尺寸。具体算法是将各子网的地址以二进制写出,进行比较,将从开始不相同的比特到末尾为填充为0。之前连续相同部分的长度为掩码的长度。
1.3域名系统
域名系统(DNS)提供IP地址和主机名之间的映射信息,是一个分布的数据库。
1.4封装
TCP传给IP的数据单元为TCP报文段(TCP段 TCP segment)。
UDP传给IP的信息单元为UDP数据报(UDP datagram),UDP首部长度为8字节。
IP传给网络接口层的数据单元称为IP数据报(IP datagram)(更准确说是分组packet,一个分组即可为一个IP数据报也可为IP数据报的一个片fragment)。
以太网传输的比特流称为帧(Frame)(长度必须在46~1500字节)。
为了区分TCP、UDP、ICMP、IGMP,IP在IP首部加入8bit的协议域。(1为ICMP, 2为IGMP,6为TCP,17为UDP)。
TCP和UDP用16bit的端口号表示不同的应用程序,作为应用程序标识符(源端口号和目的端口号均位于报文首部中)。
网络接口需要发送和接受IP、ARP和RARP数据,在帧首部加入16bit的帧类类型加以区分。
1.5分用
目的主机收到一个以太网数据帧后,数据就开始从协议栈中由底向上升,同时去掉各层协议的报文首部,并通过报文首部的协议标识确定接受数据的上层协议,这个过程称为分用(Demultiplexing)。
ICMP和IGMP是IP的附属协议,位于网络层。但ICMP和IGMP的报文均被封装在IP数据报中,需要从IP数据报中分用出来。
1.6客户-服务器模型
重复型服务器:
- 等待客户请求
- 处理客户请求
- 发送响应给发送请求的客户
- 返回2
该类服务器问题主要出现在第2步的状态,在该状态下服务器不能为其他客户机提供服务。
并发型服务器:
- 等待客户请求
- 启动一个新的服务器处理客户请求。(可能产生新的线程、进程等,取决于具体实现)新生成的服务器对客户的全部请求进行处理,处理结束后关掉这个服务器。
- 返回1
优点:每个客户有对应的服务器,可以同时为多个客户服务,并发。
一般来说,TCP服务器是并发,UDP是重复。
1.7端口号
服务器通过知名端口号识别应用程序。
服务 | 默认端口 | 主要功能 | 工作方式 |
---|---|---|---|
SMTP | 25 | 发送邮件 | TCP |
DNS | 53 | IP域名转换 | UDP |
FTP | 21 | 文件传输 | TCP |
POP | 110 | 接收邮件 | TCP |
Telnet | 23 | 远程终端 | TCP |
HTTP | 80 | web服务 | TCP |
TFTP | 69 | 简单文件传输 | UDP |
保留端口号1~1023。
客户端口号(临时端口号)1024~5000,保证端口号本机上唯一即可。
给其他服务器预留的端口后 5000~。
1.8标准简单服务
当使用TCP和UDP提供相同服务是,一般选择相同的端口号。
1.9互联网
internet:用一个共同的协议族把多个网络连接在一起。
Internet:世界范围内通过TCP/IP互相通信的所有主机集合。
Internet是一个internet,但internet不等于Internet。
1.10应用编程接口
使用TCP/IP协议采用两种API:socket和TLI(运输层接口:Transport Layer Interface)
1.11小结
TCP/IP分为链路层、网络层、运输层、应用层。
网络层(IP)提供点到点服务。
运输层(TCP和UDP)提供端到端服务。
路由器在IP层把网络连接在一起。
互联网上的接口用IP地址标识,DNS提供主机名与IP地址间的动态映射,端口号标识互相通信的应用程序,服务使用知名端口号,客户使用临时端口号。