天天看点

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

1.1分层

  TCP/IP协议族分为4层:

  1. 链路层(数据链路层或网络接口层):负责处理传输媒介的物理接口细节。
  2. 网络层(互联网层):负责处理分组在网络中的活动(e.g.分组的选路)。常见的网络层协议有:IP,ICMP(Internet互联网控制报文协议),IGMP(Internet组管理协议)。
  3. 运输层:主要为主机的应用程序提供端到端的通信。在TCP/IP协议族中包括TCP(传输控制协议)和UDP(用户数据报协议)
  4. 应用层:负责处理特定的应用程序细节。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层和网络接口层使用的地址的协议。

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

常见因特网五层协议栈包括:应用层、运输层、网络层、链路层和物理层。

七层ISO OSI参考模型包括:应用层、表示层、会话层、运输层、网络层、链路层和物理层。

    表示层的作用是使通信的应用程序能够解释交换数据的含义。(数据压缩、数据加密、数据描述)

    会话层的作用提供数据交换定界和同步功能。(建立检查点和恢复方案的方法)

    会话层和表示层在实际开发中常常有应用开发者构建。

1.2互联网的地址

IP地址长32bit,常用点分十进制表示法表示,分为地址格式分为5种。

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

有三类IP地址:单播地址(目的地为单个主机)、广播地址(目的地为给定网络上的所有主机)以及多播地址(目的地为同一组内所有主机)

地址分配由互联网络信息中心(InterNIC)管理的,InterNIC分配网络号,系统管理员分配主机号。

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

路由汇聚:把一组路由汇聚为一个单个的路由广播。最终结果和最明显的好处是缩小网络上的路由表的尺寸。具体算法是将各子网的地址以二进制写出,进行比较,将从开始不相同的比特到末尾为填充为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的帧类类型加以区分。

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

1.5分用

目的主机收到一个以太网数据帧后,数据就开始从协议栈中由底向上升,同时去掉各层协议的报文首部,并通过报文首部的协议标识确定接受数据的上层协议,这个过程称为分用(Demultiplexing)。

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

ICMP和IGMP是IP的附属协议,位于网络层。但ICMP和IGMP的报文均被封装在IP数据报中,需要从IP数据报中分用出来。

1.6客户-服务器模型

重复型服务器:

  1. 等待客户请求
  2. 处理客户请求
  3. 发送响应给发送请求的客户
  4. 返回2

    该类服务器问题主要出现在第2步的状态,在该状态下服务器不能为其他客户机提供服务。

并发型服务器:

  1. 等待客户请求
  2. 启动一个新的服务器处理客户请求。(可能产生新的线程、进程等,取决于具体实现)新生成的服务器对客户的全部请求进行处理,处理结束后关掉这个服务器。
  3. 返回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提供相同服务是,一般选择相同的端口号。

TCP/IP详解卷一读书笔记-第一章概述1.1分层1.2互联网的地址1.3域名系统1.4封装1.5分用1.6客户-服务器模型1.7端口号1.8标准简单服务1.9互联网1.10应用编程接口1.11小结

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地址间的动态映射,端口号标识互相通信的应用程序,服务使用知名端口号,客户使用临时端口号。