《TCPIP详解卷1:协议》第1章概述-读书笔记
章节回顾:
1、引⾔
很多不同的⼚家⽣产各种型号的计算机,它们运⾏完全不同的操作系统,但TCP/IP协议族允许它们互相进⾏通信。TCP/IP起源于60年代末美国政府资助的⼀个分组交换⽹络研究项⽬,到90年代已发展成为计算机之间最常应⽤的组⽹形式。
2、分层
⽹络协议通常分不同层次进⾏开发,每⼀层分别负责不同的通信功能。⼀个协议族,如TCP/IP是⼀组不同层次上的多个协议的组合。TCP/IP通常被认为是⼀个四层协议系统。
每⼀层负责不同的功能:
(1)链路层
也称作数据链路层或⽹络接⼝层。通常包括操作系统中的设备驱动程序和计算机中对应的⽹络接⼝卡。它们⼀起处理与电缆(或其他任何传输媒介)的物理接⼝细节。
(2)⽹络层
也称作互联⽹层,处理分组在⽹络中的活动,例如分组的选路。在TCP/IP协议族中,⽹络层协议包括IP协议(⽹际协
议),ICMP协议(Internet互联⽹控制报⽂协议),以及IGMP协议(Internet组管理协议)。
(3)运输层
为两台主机上的应⽤程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(⽤户数据报协议)。
TCP为两台主机提供⾼可靠性的数据通信。它所做的⼯作包括把应⽤程序交给它的数据分成合适的⼩块交给下⾯的⽹络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。UDP为应⽤层提供⼀种⾮常简单的服务。它只是把称作数据报的分组从⼀台主机发送到另⼀台主机,但并不保证该数据报能到达另⼀端。
(4)应⽤层
处理特定的应⽤程序细节。例如:Telnet远程登录、FTP⽂件传输协议、SMTP简单邮件传送协议,SNMP简单⽹络管理协议等。
假设在⼀个局域⽹(LAN)如以太⽹中有两台主机,⼆者都运⾏FTP协议,图1-2列出了该过程所涉及到的所有协议。
说明:
(1)⼤多数⽹络应⽤程序都被设计成客户-服务器模式,服务器为客户提供某种服务。
(2)在同⼀层上,双⽅都有对应的⼀个或多个协议进⾏通信。
(3)应⽤程序通常是⼀个⽤户进程,⽽下三层则⼀般在(操作系统)内核中执⾏。
(4)应⽤层关⼼的是应⽤程序的细节,⽽不是数据在⽹络中的传输活动。下三层对应⽤程序⼀⽆所知,但它们要处理所有的通信细节。
在图1-3中,可以划分出端系统(两边的两台主机)和中间系统(中间的路由器)。应⽤层和运输层使⽤端到端协议。⽹络层提供的是逐跳协议,点到点的服务。两个端系统和每个中间系统都要使⽤它。
连接⽹络的另⼀个途径是使⽤⽹桥。⽹桥是在链路层上对⽹络进⾏互连,⽽路由器则是在⽹络层上对⽹络进⾏互连。⽹桥使得多个局域⽹组合在⼀起,这样对上层来说就好像是⼀个局域⽹。
3、TCP/IP的分层
说明:
(1)TCP和UDP是运输层协议,⼆者都使⽤IP作为⽹络层协议。虽然TCP使⽤不可靠的IP服务,但它却提供⼀种可靠的运输层服务。UDP为应⽤程序发送和接收数据报。⼀个数据报是指从发送⽅传输到接收⽅的⼀个信息单元。UDP是不可靠的,它不能保证数据报能安全⽆误地到达最终⽬的。
(2)IP是⽹络层上的主要协议,同时被TCP和UDP使⽤。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联⽹中进⾏传输。
(3)ICMP是IP协议的附属协议,IP层⽤它来与其他主机或路由器交换错误报⽂和其他重要信息。IGMP是Internet组管理协议,它⽤来把⼀个UDP数据报多播到多个主机。
(4)ARP(地址解析协议)和RARP(逆地址解析协议)是某些⽹络接⼝(如以太⽹和令牌环⽹)使⽤的特殊协议,⽤来转换IP层和⽹络接⼝层使⽤的地址。
4、互联⽹的地址
互联⽹上的每个接⼝必须有⼀个唯⼀的Internet地址(也称作IP地址)。IP地址长32bit。IP地址具有⼀定的结构,五类不同的互联⽹地址格式如图1-5所⽰。
说明:
(1)多接⼝主机具有多个IP地址,其中每个接⼝都对应⼀个IP地址。
(2)有三类IP地址:单播地址(⽬的端为单个主机)、⼴播地址(⽬的端为给定⽹络上的所有主机)以及多播地址(⽬的端为同⼀组内的所有主机)。
5、域名系统
在TCP/IP领域中,域名系统(DNS)是⼀个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
6、封装
当应⽤程序⽤TCP传送数据时,数据被送⼊协议栈中,然后逐个通过每⼀层直到被当作⼀串⽐特流送⼊⽹络。其中每⼀层对收到的数据都要增加⼀些⾸部信息(有时还要增加尾部信息)。如图1-7所⽰。
说明:
(1)TCP传给IP的数据单元称作TCP报⽂段或简称为TCP段。IP传给⽹络接⼝层的数据单元称作IP数据报。通过以太⽹传输的⽐特流称作帧。
(2)以太⽹数据帧的物理特性是其长度必须在46~1500字节之间。
(3)UDP数据与TCP数据基本⼀致。唯⼀的不同是UDP传给IP的信息单元称作UDP数据报,⽽且UDP的⾸部长为8字节。
7、分⽤
当⽬的主机收到⼀个以太⽹数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报⽂⾸部。每层协议盒都要去检查报⽂⾸部中的协议标识,以确定接收数据的上层协议。这个过程称作分⽤。
8、客户-服务器模型
⼤部分⽹络应⽤程序在编写时都假设⼀端是客户,另⼀端是服务器,其⽬的是为了让服务器为客户提供⼀些特定的服务。服务分为两种类型:重复型和并发型。
(1)重复型服务器
1)等待⼀个客户请求的到来。
2)处理客户请求。
3)发送响应给发送请求的客户。
4)返回1)步。
重复型服务器主要的问题发⽣在2)状态。在这个时候,它不能为其他客户机提供服务。
(2)并发型服务器
1)等待⼀个客户请求的到来。
2)启动⼀个新的服务器来处理这个客户的请求。在这期间可能⽣成⼀个新的进程、任务或线程,并依赖底层操作系统的⽀持。这个步骤如何进⾏取决于操作系统。⽣成的新服务器对客户的全部请求进⾏处理。处理结束后,终⽌这个新服务器。3)返回1)步。
并发服务器的优点在于它是利⽤⽣成其他服务器的⽅法来处理客户的请求。每个客户都有它⾃⼰对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。
说明:
(1)对服务器,⽽不是对客户进⾏分类的原因是因为对于⼀个客户来说,它通常并不能够辨别⾃⼰是与⼀个重复型服务器或并发型服务器进⾏对话。
(2)⼀般来说,TCP服务器是并发的,⽽UDP服务器是重复的,但也存在⼀些例外。
9、端⼝号
TCP和UDP采⽤16bit的端⼝号来识别应⽤程序。服务器⼀般都是通过知名端⼝号来识别的。任何TCP/IP实现所提供的服务都⽤知名的1~1023之间的端⼝号。
说明:
(1)客户端通常对它所使⽤的端⼝号并不关⼼,只需保证该端⼝号在本机上是唯⼀的就可以了。客户端⼝号⼜称作临时端⼝号(即存在时间很短暂)。这是因为它通常只是在⽤户运⾏该客户程序时才存在,⽽服务器则只要主机开着的,其服务就运⾏。
(2)Unix系统有保留端⼝号的概念。只有具有超级⽤户特权的进程才允许给它⾃⼰分配⼀个保留端⼝号。这些端⼝号介
于1~1023之间。
(3)⼤多数Unix系统的⽂件 /etc/services都包含了⼈们熟知的端⼝号。如果你想到某个应⽤的端⼝号,可以执⾏以下命令(以Telnet为例):
10、标准的简单服务
11、其他说明
(1)所有关于Internet的正式标准都以RFC(Request for Comment)⽂档出版。⼤量的RFC并不是正式的标准,出版的⽬的只是为了提供信息。
telnet ip 端口号
(2)internet这个词第⼀个字母是否⼤写决定了它具有不同的含义。internet意思是⽤⼀个共同的协议族把多个⽹络连接在⼀起。⽽Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合。Internet是⼀个internet,但internet不等于Internet。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。