TCP/IP详解 卷1:协议 学习笔记 第一章 概述

不同计算机运行不同操作系统,但TCP/IP协议族允许它们互相通信。

TCP/IP协议族(也称Internet协议族,Internet Protocol Suite)是一组不同层次上的多个协议的组合,TCP/IP通常被认为是一个四层协议系统:
在这里插入图片描述
每一层功能:
1.链路层:也称作数据链路层或网络接口层,包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2.网络层:也称互联网层,处理分组在网络中的活动,如分组的选路。TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议)以及IGMP协议(Internet组管理协议)。
3.运输层:主要为两台主机的应用程序提供端到端的通信。TCP/IP协议族中,有两个传输协议,TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠的数据通信,它的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层;确认收到的分组;设置发送最后确认分组的超时时钟等,使用TCP协议的运输层提供了高可靠性的端到端通信,因此应用层不必考虑可靠性。
UDP只是把称作数据报的分组从一台主机发送到另一台主机,并不保证该数据报能到达另一端,可靠性必须由应用层提供。
4.应用层:处理应用的细节。几乎所有不同的TCP/IP实现都提供以下通用的应用:Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送协议、SNMP简单网络管理协议。

两台运行FTP协议的主机通信过程所涉及到的所有协议:
在这里插入图片描述
以上列举的是一个FTP客户程序和另一个FTP服务器程序通信过程,大多网络应用程序都被设计成客户-服务器模式。

应用层常运行用户进程,下三层在内核中执行。这不是必需的,但通常是这样处理的,如UNIX。

应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的通信细节。

一个互联网就是一组通过相同协议族互连在一起的网络。构造互联网的最简单方法是把两个或多个网络通过路由器连接。路由器是用于网络互连的硬件盒,其好处是为以下不同类型的物理网络提供连接:以太网、令牌环网、点对点的链接和FDDI(光纤分布式数据接口)等。这些盒子也称作IP路由器,历史上,这些盒子被称为网关,但现在网关只用来表示应用层的网关:一个连接两种不同协议族的进程(如TCP/IP协议和IBM的SNA协议),它为某个特定的应用程序服务。

在这里插入图片描述
上图的端系统是两边的主机,中间系统是路由器。应用层和运输层使用端到端的协议,网络层提供逐跳协议,在端系统和中间系统中都需要它。

网络层IP协议提供的是不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点。而TCP协议在不可靠的IP层之上提供了一个可靠的运输层,为提供可靠的服务,TCP协议采用了超时重发、发送和接收端到端的确认分组等机制。

一个路由器具有两个或多个网络接口层,因为它连接了两个或多个网络。路由器不一定指在互联网中用来转发分组的特殊硬件盒,也允许一个多接口的主机担任路由器的功能,此主机要进行特殊配置,此时我们既称该系统为主机(它运行某应用时),也称之为路由器(把分组从一个网络转发到另一网络时)。

连接网络的另一个途径是通过网桥,它在链路层上对网络进行互连,而路由器在网络层上对网络进行互连。网桥使多个局域网组合在一起,这样对上层来说就好像是一个局域网。

在这里插入图片描述
UDP协议为应用程序发送和接收数据报,一个数据报指从发送方传输到接收方的一个信息单元(如发送方指定的一定字节数的信息)。

IP协议是网络层的协议,同时被TCP和UDP协议使用。上图有应用直接使用网络层,这很少见,但这是可能的。

ICMP协议是IP协议的附属协议,IP层用它来与其他主机和路由器交换错误报文和其他重要信息。有的应用也能访问它,如ping和traceroute。

IGMP协议全称是Internet组管理协议,用来把一个UDP数据报多播到多个主机。

ARP协议(地址解析协议)和RARP协议(逆地址解析协议)是某些网络接口(以太网、令牌环网)使用的协议,用来转换IP层和网络接口层使用的地址。

互联网上每个接口必须有一个唯一的Internet地址(IP地址),长32bit。
在这里插入图片描述
在这里插入图片描述
但现在IP地址的以上分类已没有现实意义。

32位地址通常写成四个十进制数,每个整数对应一个字节(8位),这种表示方法被称为点分十进制表示法。

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

每个接口的IP地址都是唯一的,因此要有一个管理机构负责分配IP地址,这个机构是互联网络信息中心(Internet Network Information Centre),称作InterNIC,它只管分配网络号,主机号(子网掩码内的网络)的分配由系统管理员负责。

Internet注册服务(IP地址和DNS域名)过去由NIC负责。在1993.4.1日InterNIC成立。现在NIC只负责处理国防数据网的注册请求,其他Internet用户注册请求均由InterNIC负责。

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

尽管可以通过IP地址识别并访问主机,但人们最喜欢的还是通过主机名,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。任何应用都能通过一个标准库函数查看给定主机名的IP地址,系统还提供一个逆函数,给定主机的IP地址,查看它对应的主机名。

应用程序用TCP传数据时,数据被送入协议栈中,然后逐层通过,直到被当做一串比特流送入网络,其中每一层都要增加一些首部信息(有时还增加尾部信息)。
在这里插入图片描述
TCP协议传给IP协议的数据单元称作TCP报文段(简称TCP段)。IP协议传给网络接口层的数据单元称作IP数据报,更准确地说,应该是IP数据报或IP数据报的一个片,IP数据报可以分片。通过以太网传输的比特流称作帧。

以太网帧的物理特性是长度必须在46~1500字节之间。

上图是TCP协议的情况,UDP与之相似,但UDP传给IP的信息单元被称作UDP数据报。UDP首部长8字节。

TCP、UDP、ICMP、IGMP协议都要向IP传送数据,因此IP要在IP首部加入标识,以区分数据来源,为此,IP在首部中存入一个长为8bit的数值,称作协议域,1表示ICMP、2表示IGMP、6表示TCP、17表示UDP。

很多应用都使用TCP、UDP传送数据,因此运输层协议在生成报文首部时要存入一个应用程序标识符,TCP和UDP都使用16bit端口号表示不同的应用程序,并把源端口号和目的端口号存入报文首部中。

网络接口分别要发送和接收IP、ARP、RARP数据,因此也必须在以太网帧首部中加入标识,来指明生成数据的网络层协议,为此,以太网帧首部有16bit的帧类型域。

在这里插入图片描述
ICMP和IGMP属于IP的附属协议,我们在上图中将它们放在IP层的上面,这是因为ICMP和IGMP报文都被封装在IP数据报中。

对于ARP和RARP也类似,将它们放在以太网驱动程序的上方。

C/S结构中服务端的服务可分为两种类型,重复型和并发型。

重复型服务器通过以下步骤交互:
1.等待一个客户请求到来。
2.处理客户请求。
3.发送响应给客户。
4.重复以上过程。

重复型服务器的问题是在状态2时,不能为其它客户机提供服务。

并发型服务器:
1.等待客户请求的到来。
2.启动一个新的服务器处理这个客户的请求,可能新生成一个进程、任务、线程,并依赖底部操作系统的支持。新服务器处理完请求后,终止它。
3.重复以上过程。

并发服务器优点是它利用生成的其他服务器来处理客户请求,即每个客户都有它自己对应的服务器,如果操作系统允许多任务,那么可同时为多个用户服务。

客户并不能辨别自己是与哪种类型的服务器进行对话。

一般,TCP服务器是并发的,UDP服务器是重复的,但也有例外。

对于TCP/IP实现来说,FTP服务器的TCP端口号是21,Telnet服务器的TCP端口号是23,TFTP(简单文件传送协议)服务器的UDP端口号是69。所有TCP/IP实现提供的服务都使用知名的1~1023之间的端口号。知名端口号是由Internet号分配机构(IANA,Internet Assigned Number Authority)来管理。

1992年之前,知名端口号介于1~255之间,256~1023之间的端口号通常由Unix系统占用,提供一些特定的UNIX服务,而其他操作系统可能没有这些服务。但现在IANA管理1~1023之间所有端口号。

Internet扩展服务和Unix特定服务的一个区别是Telnet和Rlogin,它们都允许计算机网络登录到其他主机上。Telnet端口号为23且在所有操作系统上都可进行实现,而Rlogin开始是为Unix系统设计的,在80年代初,它的有名端口号为513。

客户端对它所使用的端口号并不关心,只要保证该端口号在本机上是唯一的即可。客户端口号又称临时端口号,它只在运行该客户程序时才存在,而服务器只要主机开着,其服务就运行。

大多TCP/IP实现给临时端口分配1024~5000之间的端口号,大于5000的端口号是为其他不常用的服务器预留的。

Solaris 2.2比较例外,它的TCP和UDP默认的临时端口号是从32768开始的,但可以修改它。

大多数UNIX系统文件/etc/services包含了人们熟知的端口号:
在这里插入图片描述
只有root用户才能给自己分配一个保留端口号(被保留给常用的服务器程序),这些端口号位于0~1023之间,一些应用将它作为客户与服务器身份认证的一部分。

有四个小组负责定义新标准等其他类似事情:
1.Internet协会(ISOC,Internet Society)。
2.Internet体系结构委员会(IAB,Internet Architecture Board),隶属于ISOC。
3.Internet工程专门小组(IETF,Internet Engineering Task Force),隶属于IAB。
4.Internet研究专门小组(IRIF,Internet Research Task Force),隶属于IAB。

所有关于Internet的正式标准都以RFC文档出版,但很多RFC文档并不是正式的标准。RFC会后跟一个数字,如RFC 1122,数字越大,内容越新。

按以下方式发送email可收到一份获取RFC的方法的清单:
在这里插入图片描述
在这里插入图片描述
以上这些标准的简单服务和其他标准的TCP/IP服务的端口号都是奇数,这是历史原因造成的,因为这些端口号都是从NCP(网络控制协议,是ARPANET的运输层协议,是TCP的前身)端口号派生出来的。NCP是单工的,不是全双工的,因此每个应用需要两个连接,要预留一对奇数和偶数端口号。当TCP和UDP成为标准的运输层协议时,每个应用程序只需要预留一个端口号,就使用了NCP中的奇数。

internet指用一个共用的协议族把多个网络连接在一起;而Internet指世界范围内通过TCP/IP互相通信的所有主机集合。Internet是一个internet。

既成事实标准的TCP/IP软件实现来自于位于伯克利的加利福尼亚大学的计算机系统研究小组。软件是随同4.x BSD系统的网络版一起发布的,它的源代码是许多其他实现的基础。
在这里插入图片描述
SunOS 4.x、SVR 4、AIX 3.2等是基于伯克利源代码开发的系统,它们有很多共同之处,系统中常包含相同的错误。

使用TCP/IP的应用程序常采用两种编程接口:socket和TLI(运输层接口,Transport Layer Interface)。前者常称为Berkeley socket,表明它是从伯克利发展来的。后者起初由AT&T开发,有时称其XTI(X/Open运输层接口),以承认X/Open这个自己定义标准的国际计算机生产商的工作,XTI实际是TLI的超集。

网络层提供点到点的服务,运输层提供端到端的服务。

路由器在IP层把网络连在一起。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP详解 1:协议(原书第2版)PDF》是由美国计算机科学家 Douglas Comer 所著的一本关于 TCP/IP 协议的经典教材。该书详细介绍了 TCP/IP 协议栈的各个层级以及其应用和实际场景。 这本书主要分为两个部分:第一部分是对 TCP/IP 协议栈的介绍和分析,包括网络层、传输层、应用层等各个方面的内容。第二部分是对 TCP/IP 协议的应用和实践指导,包括网络管理、安全性、多媒体和网络编程等内容。 通过阅读这本书,读者可以深入了解 TCP/IP 协议栈的工作原理、网络通信的基本概念和技术细节。书中提供了大量的实践案例和代码示例,可以帮助读者理解和应用 TCP/IP 协议栈。 《TCP/IP详解 1:协议(原书第2版)PDF》是一本权威且经典的教材,被广泛用于计算机网络和通信领域的学习和研究。无论是网络工程师、系统管理员、还是对计算机网络感兴趣的人都可以从中获得深入的知识和实践经验。 该书在网络技术的发展历程中具有重要的地位和影响力,它不仅仅是一本理论教材,更是对 TCP/IP 协议的全面解析和实践指南。对于想要深入掌握和理解 TCP/IP 协议栈的人来说,这本书是一本必不可少的参考资料。 总而言之,《TCP/IP详解 1:协议(原书第2版)PDF》是一本经典且权威的 TCP/IP 协议教材,适合各个层次的读者阅读和学习。无论是初学者还是专业人士,都可以通过阅读这本书,深入理解和应用 TCP/IP 协议栈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值