TCP/IP协议
本文档创建时间:2016.8.17
描述:根据TCP-IP详解卷1:协议1编写
1 概述
1.1分层
一、四个层次
- 链路层,也称数据链路层或网络接口层。
- 网络层,也称互联网层,处理分组在网络中的活动。
- 运输层主要为两台主机上的应用程序提供端到端的通信。
- 应用层负责处理特定的应用程序细节。
二、路由器
- 构造互联网最简单的方法是把两个或多个网络通过路由器进行连接,它是一种特殊的用于网络互连的硬件盒。
- 这些盒子也成为IP路由器(IP Rounter),使用路由器术语。
- 这些盒子在历史上称作网关,现在网关只是表示应用层网关。
1.2TCP/IP的分层
在TCP/IP协议族中,有很多种协议,本书只讨论如下协议
1.3互联网的地址
- 互联网上的每个接口必须有一个唯一的Internet地址(IP地址)。
- IP地址长32bit。
- IP地址具有一定的结构。
五类不同的互联网格式如图
32位地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法”。
区分各类地址的最简单方法:
多接口主机具有多个IP地址,其中每个接口都对应一个IP地址。
1.4 域名系统
- 尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名。在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来来提供IP地址和主机名之间的映射信息。
- 任何应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址。
- 系统还提供一个逆函数—给定主机的IP地址,查看它所对应的主机名。
1.5 封装
- 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。
- 每一层对收到的数据都要增加一些首部信息,有时增加尾部信息。
- TCP传给IP的数据单元称作TCP报文段或简称TCP段。
- IP传给网络接口层的数据单元称作IP数据报。
通过以太网传输的比特流称作帧。
由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,一表示数据属于哪一层。IP在首部中存入一个长度为8bit的数值,成为协议域。1表示ICMP协议,2表示IGMP协议,6表示TCP协议,17表示为UDP协议。
- 许多应用程序可以使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。
- 网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部加入某种形式的标识,以指明生成数据的网络层协议。以太网的
1.6 分用
当目的主机收到一个以太网数据帧时,如下为后续过程,此过程称作分用:
客户-服务器模型
服务器分为两种类型:重复型或并发性。
端口号
TCP和UDP采用16bit的端口号来识别应用程序。大于5000的端口号是为其他服务器预留的。