资源描述
目录
1.1 TCP/IP协议历史和发展过程
1.2 TCP/IP协议体系结构模型
2.1 IP网际层功效
2.2 IP地址及其转换
2.2.1 IP地址
2.2.2 IP地址转换
2.2.3 子网技术
2.3 IP数据报格式
2.4 Internet控制报文协议ICMP
3.1 TCP运输层协议概述
3.2 端口及套接字
3.3 TCP报文格式
3.4 差错控制与流量控制
3.5 TCP连接管理
3.6 用户数据报协议UDP
4.1 应用层概述
4.2 应用层协议介绍
4.2.1 文件传送协议FTP、 TFTP
4.2.2 简单邮件传输协议SMTP
4.2.3 远程登录TELNET
论TCP/IP协议体系结构及其各层协议
(易家傅 99714001 卢凌凌 99714004)
摘要: 本文关键叙述了TCP/IP协议体系结构及各层协议。关键说明IP网际协议数据报格式、 IP地址及地址转换, TCP传输控制协议数据报格式、 差错控制、 流量控制和连接建立等原理。最终还介绍了应用层多个常见协议。
关键字: TCP/IP IP地址 子网掩码 端口 套接字
引言:
目前世界经济正在从工业经济向知识经济转变, 这种以知识基础经济有两个关键特点, 就是信息化和全球化。而要实现信息化和全球化, 就必需依靠完善网络。计算机网络是其中最关键一部分, 然而计算机网络远比电信网络复杂, 它不仅仅是计算机之间简单连接, 还是相互通信计算机系统之间高度协调工作, 所以必需将这庞大而复杂问题分层处理, 转化成若干个局部问题, 从而形成了像建筑框架那样网络体系结构。因为Internet已得到全世界认可, 所以Internet所使用TCP/IP体系计算机网络中占有真关键地位, 了解其内容和工作原理对学习计算机网络是很有帮助。
1.1 TCP/IP协议历史和发展过程
TCP协议最早由斯坦福大学两名研究人员于1973年提出。1983年, TCP/IP被Unix 4.2BSD系统采取。伴随Unix成功, TCP/IP逐步成为Unix机器标准网络协议。Internet前身ARPANET最初使用NCP(Network Control Protocol)协议, 因为TCP/IP协议含有跨平台特征, ARPANET试验人员在经过对TCP/IP改善以后, 要求连入ARPANET计算机都必需采取TCP/IP协议。伴随ARPANET逐步发展成为Internet, TCP/IP协议就成为Internet标准连接协议。
1.2 TCP/IP协议体系结构模型
TCP/IP协议其实是一个协议集合, 它包含了TCP协议(Transport Control Protocol, 传输控制协议)、 IP协议(Internet Protocol Internet协议)及其它部分协议。如图1, TCP/IP体系结构模型自下往上分别是:
(1)网络接口层: 严格来说它不是一个层次, 而仅仅是一个接口, 用以提供在下面数据链路层和物理层接口。网络接口层并没有什么具体内容, 这里就不再讨论了。 图1
(2)IP网络层: 关键有网际协议IP, 地址解析协议ARP, 逆地址解析协议RARP。
(3)TCP运输层: 有运输控制协议TCP, 用户数据报协议UDP。
(4)应用层: 有TELNET, FTP, SMTP等应用层协议。
层与层之间关系是,下层总是为上一层服务,上层屏蔽下一层服务细节。
2.1 IP网际层功效
不一样物理网络技术有不一样编址方法; 不一样物理网络中主机, 有不一样物理网络地址。网间网技术是将不一样物理网络技术统一起来高层软件术。网间网技术采取一个全局通用地址格式, 为全网每一网络和每一主机都分配一个网间网地址, 以此屏蔽物理网络地址差异。IP协议提供一个全网间网通用地址格式, 并在统一管理下进行地址分配, 确保一个地址对应一台网间网主机(包含网关), 这么物理地址差异被IP层所屏蔽。IP提供是无连接服务。
2.2 IP地址及其转换
2.2.1 IP地址
每个Internet上主机和路由器都有一个IP地址,包含网络号和主机号,其中网络号标识该网络,而主机号标识该网络中主机。全部IP地址都是32位, 分成4个字段, 每个字段8位。
32位IP地址能够有五种格式, 如图2所表示:
IP地址通常见带点十进制记法来书写, 即IP地址写成四个十进制数, 相互之间用小数点隔开, 每个十进制数(从0到255)表示IP地址一个字节。值得指出是0和1有特殊意义, 见表格1:
Net-id
Host-id
源地址使用
目地址使用
代表意思
0
0
能够
不可
在本网络上主机
0
Host-id
能够
不可
在网络上某个主机
全1
全1
不可
能够
只在本网络上进行广播
Net-id
全1
不可
能够
对net-id上所以主机进行广播
127
任何数
能够
能够
用作当地软件回送测试之用
表格1
2.2.2 IP地址转换
IP地址是网络层地址, 而下传到链路层要转变为MAC帧后才能发送到网络。而MAC帧使用是硬件地址。怎样将32位IP地址转变成48位局域网 地址, 这就是地址解析协议ARP要处理问题。
假设是在本局域网中, A主机向B主机发生数据报。首先A主机查看ARP高速缓存内IP地址到物理地址映射表, 假如找到就写入MAC帧发送, 不然进行以下步骤:
(1) 在本局域网上广播发送一个ARP请求分组, 上面有主机BIP地址;
(2) 在本局域网上所以主机上运行ARP进程都收到此ARP请求分组;
(3) 主机B在ARP请求分组中见到自己IP地址, 就向主机A发送一个ARP响应分组, 上面写入自己物理地址;
(4) 主机A收到主BARP响应分组后, 就在其ARP高速缓存中写入主机BIP地址到物理地址映射。
有时还要用到逆地址解析协议RARP使只知道自己物理地址主机能够知道其IP地址, 如无盘工作站引导就能够经过逆地址解析协议RARP来处理。
2.2.3 子网技术
我们知道一个单位分配到IP地址是IP地址中网络号net-id,以后面主机号host-id则由本单位进行分配。若该单位全部主机都使用同一个网络号, 主机数量很多, 分布在很大地理范围时, 往往需要部分网桥将这些主机互连起来。网桥缺点较多, 比如, 轻易引发广播风暴, 同时当网络出现故障时也不太轻易隔离和管理。为了让本单位主机便于管理, 能够将本单位所属主机划分为若干个子网, 用IP 地址中主机号字段中前若干个比特作为“子网号字段”, 后面剩下来仍为主机号字段。这么便能够用路由器把本单位各子网互连起来, 使全单位网络便于管理。从外部看, 这个单位只有一个网络号。只有当外面分组进入到本单位范围后, 再由该单位路由器依据子网号进行选路, 最终找到目主机。这么一来该单位网络管理就很方便得多了。同时IP地址使用不至于造成很大浪费, 缓解了日益增加局域网和网上主机对IP地址需求。
如图3所表示, 说明了子网掩码意义。每一个路由器当收到一个分组时, 首先检验该分组IP地址中网络号, 若不是本网络号则发送到下一站路由器, 若是本网络号则用子网掩码与IP地址按位相与运算, 然后取出子网号进行判定, 决定是发送到其她子网, 或直接交付给本网络主机端口。
2.3 IP数据报格式
IP数据报格式能够说明IP协议都含有什么样功效, 图4就是数据报格式。
从图4中能够看出, 一个数据报首部由和数据两部分组成。首部前20字节是固定部分, 后一部分则是可变部分。
数据报首部固定部分中各字段
。版本 占4bit, 指 版本。通信双方使用 协议版本必需一致。
。首部长度
占4bit, 可表示最大数值是15个单位(每个单位为4字节), 所以IP首部长度最大值是60 字节。当IP分组首部长度不是4字节整数倍时开始, 这么在实现起来会比较方便。首部长度限制为60 个字节缺点是有时(如采取源站选路时)不够用。但这么用意是要用户尽可能降低额外开销。
。服务类型
占8bit用来取得愈加好服务, 其意义见图一上面部分所表示。服务类型字段前三个比特表示优先级, 它可使数据报含有8个有限级中一个。
第四个比特是D比特, 表示要求有更低时延。
第五个比特是T比特, 表示要求有更高吞吐量。
第六个比特是R比特, 表示要求有更高可靠性, 即在数据报传送过程中, 被节点交换机丢弃概率比较更小部分。
第七个比特是C比特, 是新增加, 表示要求选择费用更低廉路由。
最终一个字节现在还未使用。
。总长度
总长度指首部和数据之和长度, 单位为字节。
总长度字段为16bit, 所以数据报最大长度为65535字节。这在现在是够用。
当很长数据报要分片记性传送时, “总长度”不是指 数据报长度, 而是指分片后首部长度和数据长度总和。
。标识
标识字段是为了使分片后各数据报最终能正确地重装成为原来数据报。请注意: 这里“标识”并没有次序号意思, 因为IP是无连接服务, 数据报不存在按序接收问题。
。标志
占3bit 。现在只有前两个比特有意义。
标志字段中最低位记为MF(More Fragment)。MF=1即表示后面还有分片数据报。MF=0表示这已是若干数据报片中最终一个。
标志字段中间一位记为DF (Don't Fragment).只有当MF=0时才许可分片。
。片偏移
片偏移指出: 较长分组在分片后, 某个片在原分组中相对位置。也就是说, 相对于用户数据字段起点, 该片从何处开始。片偏移以8个字节为偏移单位。
。寿命
寿命字段记为TTL(Time To Live), 其单位为秒, 提议寿命值为32秒。
。协议
占8bit, 协议字段指出此数据报携带运输层数据是使用何种协议方便目主机IP层知道应将此数据报上交给哪个进程。常见协议和对应协议字段值是: UDP(17), TCP(6), ICMP(1), GGP(3)。
。首部检验和
此字段只检验数据报首部不包含数据部分。IP检验和计算方法是: 将 数据报首部看成为16bit字序列。先将检验和字段置零, 将全部16bit字相加后, 将和二进制反码写进检验和字段。收到数据报后, 将首部16bit字序列再相加一次, 若首部未发生任何改变, 则和必全为1, 不然即认为犯错, 并将数据报丢弃。
IP数据报首部可变部分关键用来进行网络测试或调试, 可选项是变长, 定义了5种选项: 即安全性、 严格路由选择、 宽松路由选择、 路由统计、 时间标识。
2.4 Internet控制报文协议ICMP
ICMP关键由网际网中主机和路由器使用, 用来交换支持数据报传输信息。通常ICMP路由问题而引发差错汇报, 不过同ICMP一起使用有十一个不一样类型报文。关键分成为两种类型, 即ICMP差错报文和ICMP问询报文。
在ICMP差错报文中, 改变路由报文使用最多, 它用于更新主机路由表。ICMP源站抑制报文用于控制网络拥塞, 处理速率较高源主机向速率较低目主机发送数据报时匹配问题。
问询报文关键有:
(1) Echo请求报文: 用于测试目站是否可达成, 及其相关状态。
(2) 时间戳请求报文: 可用来进行时钟同时和测量时间。
(3) 地址掩码请求报文: 可使主机向子网掩码服务器得到某个接口地址掩码
3.1 TCP运输层协议概述
从通信和信息处理角度看, 运输层属于面向通信部分最高层。但从网络功效或用户功效来划分, 则运输层又属于用户功效中最低层。运输层向高层用户屏蔽了下面通信子网细节, 使用户看不到实现通信功效物理链路是什么, 看不见数据链路采取是什么协议。TCP协议提供是面向连接服务, 是在不可靠网络服务上提供端到端可靠字节流。
3.2 端口及套接字
端口是应用层与运输实体进行交互接口。端口号是一个16bit地址,不一样应用进程用 不一样端口号来标识。端口号分为两类, 一类是专门分配给部分最常见应用程序, 这叫熟知端口(well—known port), 数值为0-1023。
“熟知”就表示这些端口号是TCP/IP体系确定并公布; 另外一类则是通常端口号, 用来随时分配给请求通信用户进程。
套接字即是IP地址与端口号组合, TCP一个连接就是以一对套接字来标识, 所以在运输层通信一对套接字必需是唯一。
3.3 TCP报文格式
下图是TCP报文格式图:
。源端口和目端口
各占两个字节。端口是运输层与高层服务接口, 16bit 端口, 32bitIP地址, 组成了相当于运输层服务访问点TSAP地址(总共是48bit)。
。序列号
占四个字节, 是本报文段所发送数据部分第一个字节序号。在 TCP传送数据流中每一个字节都有一个序号。
。确定序号
占四个字节, 是期望收到对方下次发送数据第一个字节序号, 也就是期望收到下一个报文段首部中序号。因为序号字段有32bit长, 可对4GB数据进行编号, 这么就能够确保序号反复使用时旧序号数据早已在网络中消失了。
。数据偏移量
占4bit, 这是TCP报文段首部长度, 用于指出数据开始地方离TCP报文段起始处有多远。“数据偏移”单位是32bit字,
。保留位 6bit, 这些位必需是0;
。控制位
占6bit,各比特意义以下: 紧急比特URG, 当URG=1时, 表明此报文段应立刻发送而不要按原来排队来传送, 应与紧急指针字段配合使用; 确定比特ACK, 当ACK=1时确定序号字段才有意义; 紧迫比特PSH, 当PSH=1时, 表明请求远地TCP将本报文段立刻传送给其应用层, 而不等到整个缓冲区满后再向上交付; 重建比特RST, 当RST=1时, 表明出现严重错误, 必需释放连接, 然后重新建立运输连接; 同时比特SYN, 当SYN=1而ACK=0时, 表明这是一个连接请求报文段, 若对方同意建立连接, 则应在发回报文段中使SYN=1且ACK=1; 终止比特FIN, 当FIN=1时, 表明发送字节串已经发送完成, 并要求释放运输连接。
。窗口 占两字节, 是报文段发送方接收窗口, 单位为字节。
。检验和
占两字节, 检验范围包含首部和数据两部分, 在计算检验和时, 首先要在TCP报文段前面加上一个12字节伪首部, 然后接收端在计算检验和时仍然要加上伪首部。
。选项
长度可变。TCP要求一个选项即最长报文段MSS用于告诉对方TCP: 当地缓冲区所能接收报文段最大长度。
。填充
不定长, 填充内容必需为0, 它是为了确保包头结合和数据开始
处偏移量能够被32整除;
3.4 差错控制
TCP不是按传送报文段来编号。TCP将所要传送整个报文看成一个个字节组成数据流, 然后对每一个字节编一个序号。在连接建立时双方要约定初始序号。TCP就将每一次传送报文段中第一个数据字节序号, 放在TCP首部序号字段中。TCP确定是对收到数据最高序号表示确定。但返回确定序号是以收到数据最高序号加1。也就是说确定序号表示期望下一次收到第一个数据字节序号。
若发送方在要求设置时间内没有收到确定, 又要将未被确定报文段重新发送。接收方若收到有差错报文段, 则丢弃此报文段(不发送否认息)。
若收到反复报文段, 也要将其丢弃, 但要发送确定信息。若收到报文段无差错, 只是未按序号, 那么应该怎样处理?TCP对此未做明确要求, 而是让TCP实现者来自行确定。或者将不按序报文段丢弃, 或者先将其暂存于接收缓冲区内, 待所缺序号报文段收齐后再一起上交应用层。采取后一个策略对网络性能会愈加好些。
3.5 TCP流量控制
TCP采取可变发送窗口方法进行流量控制。发送窗口是指当发送端在未收到确定时还能够继续发送报文段个数。窗口大小单位是字节。在TCP报文段首部窗口字段写入数值就是目前设定接收窗口数值。
发送窗口在连接建立时由双方约定。在通信过程中接收端可依据自己资源情况, 随时动态地调整自己接收窗口, 然后告诉对方, 使对方发送窗口和自己接收窗口一致。
实现流量控制并非仅仅为了使接收端来得及接收。假如发送端发出报文过多会使网络负荷过重。由此会引发报文段时延增大, 这将会使主机不能立刻地收到确定, 所以会重发更多报文段, 而这又会深入加剧网络拥塞。为了避免发生拥塞, 主机应该降低发送速率。
3.5 TCP连接管理
运输连接建立和释放是每一次面向连接通信中必不可少过程, 运输连接管理就使运输连接建立和释放都能正常进行。
在连接建立过程中要处理以下三个问题:
(1) 要使每一方都知道对方存在;
(2) 要许可双方协商部分参数(如, 最大报文段长度, 最大窗口大等);
(3) 能够运输实体资源(如缓冲区大小, 连接表中项目等)进行分配。
在数据连接建立过程叫做三次握手:
(1) 主机ATCP向主机B发送请求连接报文段, 其首部中同时比特SYN应置1, 同时选择一个序号X, 约定为起始序号;
(2) 主机BTCP收到连接请求报文段后, 假如同意则发回确定, 在确定报文段中置1, 确定序号为X+1, 同时为自己选择一个序号Y。
(3) 主机ATCP收到此报文段后还要向B给出确定, 其确定序号为Y+1;
(4) 各主机TCP通知上层应用进程连接已建立。
在数据传输结束后, 通信双方都能够发出释放连接请求。与建立连接相类似, 释放过程也是三次握手:
(1) 假设A先发出释放请求, 则在发给BTCP报文段首部终止比特FIN1;
(2) B收到请求后发出确定, 此时A到B连接就释放了, 连接处于半关闭状态;
(3) 若B也发出释放请求, A收到后发出确定。这时反向连接也释放了。整个连接就全部释放了。
3.6 用户数据报协议UDP
用户数据报协议UDP只在IP数据报服务基础上增加极少一点功效, 看图1, 很形象说明了UDP和TCP之间差异。UDP可靠服务必需由应用层来完成。
UDP首部字段很简单, 只有8个字节, 由四个字段组成, 每个字段都是两个字节。分别为: 源端口字段, 目端口字段, 长度字段, 检验和字段。
4.1 应用层概述
应用层协议并不是处理用户多种具体利用协议, 处理具体应用问题应该是应用进程, 应用层则是要求应用进程在通信时所遵照协议。
4.2 应用层协议介绍
4.2.1 文件传送协议FTP、 TFTP
FTP是Internet上使用最广泛文件传送协议, 它屏蔽了各计算机系统字节, 所以适合于异构网络中任意计算机之间传送文件, 它支持很多不一样文件类型和文件组织形式。FTP是基于TCP, 它使用端口号为21。
TFTP是FTP功效一个子集, 简化了FTP实现复杂性, TFTP使用是UDP数据报, 所以TFTP要有自己差错纠正方法。TFTP只支持文件传输, 而不支持交互, 所以没有庞大命令集, 其端口号为69。
4.2.2 简单邮件传输协议SMTP
SMTP就是在两个报文传送代理MTA之间通信协议。SMTP要求了十四条命令和二十一个应答信息, 由一个三位数字代码开始, 后面附上(也可不附上)很简单文字说明。SMTP通信三个关键阶段是: (1)连接建立; (2)邮件传送; (3)连接释放。
4.2.3 远程登录TELNET
TELNET是一个简单终端协议。用户用TELNET就能够在其所在地经过TCP连接注册到远地另一个主机上。TELNET能把用户击键传到远地主机, 同时也能把远地主机输出经过TCP连接返回到用户屏幕。这种服务是透明, 因为用户感觉到仿佛键盘和显示器是直接连在远地主机上。
结束语: TCP协议与IP协议是TCP/IP体系结构中关键, 正是因为IP网际协议处理了异构网之间连接与寻址问题, TCP运输协议处理了端到端可靠字节服务, 使得Internet得到了广泛应用。TCP/IP协议将不停地得到完善, IPV6将成为下一代IP, 其功效将愈加强大。
展开阅读全文