TCP/IP详解卷一_笔记1(概述)


• TCP/IP协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。在TCP/IP中,网络层和运输层之间的区别是最为关键的:网络层(IP)提供点到点的服务,而运输层(TCP和UDP)提供端到端的服务。
• 一个互联网是网络的网络。构造互联网的共同基石是路由器,它们在IP层把网络连在一起。第一个字母大写的Internet是指分布在世界各地的大型互联网,其中包括1万多个网络和超过100万台主机。
• 在一个互联网上,每个接口都用IP地址来标识,尽管用户习惯使用主机名而不是IP地址。
• 域名系统为主机名和IP地址之间提供动态的映射。端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。

1.1 分层

TCP/IP协议族,是一组不同层次上的多个协议的组合。通常被认为是一个四层协议系统

TCP/IP层协议
应用层Telnet、FTP和e-mail等
运输层TCP和UDP
网络层IP、ICMP和IGMP
链路层设备驱动程序及接口卡

每一层负责不同的功能:
应用层: 负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序
• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。

运输层: 主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。

网络层: 有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括I P协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。

链路层: 有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

• 假设在一个局域网(LAN)如以太网中有两台主机,二者都运行FTP协议
在这里插入图片描述
大多数的网络应用程序都被设计成客户—服务器模式。服务器为客户提供某种服务,在 本例中就是访问服务器所在主机上的文件。

• 网络层和运输层之间的区别:例如,在TCP/IP协议族中,网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面, TCP在不可靠的IP层上提供了一个可靠的运输层。为了提供这种可靠的服务, TCP采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。

• TCP在不可靠的IP层提供了可靠地运输保证,采用超时重传,发送端和接收端的确认分 组等机制。可以简单地认为,网络层就是从一个银行向第二个银行走的运钞车,而运输层就是随车的护送武警。

• 互联网的目的之一是在应用程序中隐藏所有的物理细节。

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

• 网桥在链路层将网络进行互联,路由器通过网络层进行互联,一种是物理结构的互联另一种是数据上的互联,存在甄别方式,check方法也不一样,准确来说,网桥可以将多个局域网整合起来,近似变成一个局域网

• TCP/IP倾向于使用路由器而不是网桥来连接网络。

1.2 TCP/IP的分层

TCP/IP协议族中的其他协议

在这里插入图片描述
TCP(Transmission Control Protocol,传输控制协议): 是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。——是面向连接的、是面向字节流的、保证数据顺序、

UDP(User Data Protocol,用户数据报协议): 是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。——是面向无连接的、程序结构较简单、是基于数据报的、UDP 可能丢包、不保证数据顺序

IP( Internet Protocol, 网际协议): IP是网络层的主要协议,同时被TCP和UDP使用,主要在网络层中使用,所以说实际上路由器中的机器进行连接也是通过IP协议。

ICMP(Internet Control Message Protocol,Internet控制消息协议): ICMP是IP的附属协议 用于提交错误报告和其他重要信息如果说IP是一个网络层的邮差,他只负责运送邮件,那么ICMP就是他随身携带的检测工具,用于获得错误和报告。ping和traceroute都使用ICMP协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。

IGMP(Internet Group Manage Protocol,Internet组管理协议): IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机,可以认为他是邮差身上可能会携带的大喇叭。

ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,逆地址解析协议): ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口使用的特殊协议,用来转换I P层和网络接口层使用的地址。可以认为是送信过程中,外国人的邮件需要进行语言转换才可以将他理解。

• 所有的TCP,UDP,ICMP,IGMP数据都以IP数据报的形式传输。

1.3 互联网的地址

• IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”。

• 互联网上的每个接口必须有一个唯一的Internet 地址(也称作I P地址)。IPV4地址为32 bit二进制数。

• 早期互联网中采用分类的IP地址结构:将32位的IP地址分为五类:A,B,C,D,E,其中前三类地址作为单播地址使用,第四类地址作为多播地址使用,E类地址保留,用作以后地址扩展使用。

在这里插入图片描述

• A类地址 第一字节为网络ID,后三个字节为主机ID,范围是1.0.0.1—126.155.255.254;
B类地址 第一二字节为网络ID,后两个字节为主机ID,范围是128.0.0.1—191.255.255.254;
C类地址 前三个字节为网络ID,最后一个字节为主机ID,范围是192.0.0.1—223.255.255.254
D类地址 用于组播,前四位为1110,范围是224.0.0.1—239.255.255.254;

• 保留地址:
127.0.0.1 本地环回地址,相当于hostload
169.254.xxx.xxx Windows系统为未分配主机临时分配IP
每一个字节都为0的地址(“0.0.0.0”)对应于当前主机
IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址
主机部分全为0的地址:指整个网络的地址
私网地址:
A类:10.xxx.xxx.xxx
B类:172.16.0.0-172.31.255.255
C类:192.168.xxx.xxx

1.4 域名系统(DomainNameSystem)

在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供I P地址和主机名之间的映射信息,任何应用程序都可以调用一个标准的库函数来查看给定名字的主机的I P地址。
DNS在我们直接调用网站的名字以后就会将像www.baidu.com一样便于人类使用的名字转化成像202.108.22.5一样便于机器识别的IP地址。

1.5 封装

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作
一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)

在这里插入图片描述
数据从应用层开始往下传,层层封装,并且在每一层有不同的名称:

经过传输层,加上TCP头组成数据段,

经过网络层,加上IP头组成数据包,

经过数据链路层,加上MAC头,加完后再加上一个FCS校验组成数据帧,就封装完成了,然后在物理层通过Bit来传输。

所以说数据包的时候知道有ip地址,说数据帧的时候知道有mac地址即可。

传输过程不关心具体的数据是什么,应用程序也不关心数据是怎样被传输过去的,数据通过网络封装,再通过网线传输的过程对应用程序来说是透明的。

1.6 解封装

计算机在接收到数据帧后,需要去掉为了传输而添加的附加信息,这称为解封装。

在这里插入图片描述

1.7 客户服务器模式(Client–server model,C/S)

大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服
务器为客户提供一些特定的服务。

• 可以将这种服务分为两种类型:重复型或并发型

重复型服务
重复型服务器通过以下步骤进行交互:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
重复型服务器主要的问题发生在 I 2状态。在这个时候,它不能为其他客户机提供服务。

并发型服务
相应地,并发型服务器采用以下步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。

1.8 端口号

• 端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区 分不同的服务的。

• 服务器一般都是通过知名端口号来识别的。例如,对于每个TCP / I P实现来说, F T P服务器的TCP端口号都是2 1,每个Te l n e t服务器的TCP端口号都是2 3,每个T F T P (简单文件传送协议)服务器的UDP端口号都是6 9。任何TCP/IP实现所提供的服务都用知名的1~1 0 2 3之间的端口号。这些知名端口号由I n t e r n e t号分配机构(Internet Assigned Numbers Authority, IANA)来管理。

• 客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以
了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。

• 大多数TCP/IP实现给临时端口分配1 0 2 4~5 0 0 0之间的端口号。大于5 0 0 0的端口号是为其他服务器预留的( I n t e r n e t上并不常用的服务)。我们可以在后面看见许多这样的给临时端口分配端口号的例子。

• 到1992年为止,知名端口号介于1~255之间。256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务—也就是说,提供一些只有Unix系统才有的、而其他操作系统可能不提供的服务,IANA管理1~1023之间所有的端口号。

• Internet扩展服务与Unix特定服务之间的一个差别就是Telnet和Rlogin。它们二者都允许通过计算机网络登录到其他主机上。Telnet是采用端口号为23的TCP/IP标准且几乎可以在所有操作系统上进行实现。Rlogin只是为Unix系统设计的(尽管许多非Unix系统也提供该服务),它的有名端口号为513。

1.8 标准化过程

究竟是谁控制着TCP/IP协议族,又是谁在定义新的标准以及其他类似的事情?事实上,有四个小组在负责I n t e r n e t技术。

  1. Internet协会(I S O C,Internet Society)是一个推动、支持和促进I n t e r n e t不断增长和发展的专业组织,它把I n t e r n e t作为全球研究通信的基础设施。
  2. Internet体系结构委员会(I A B,Internet Architecture Board)是一个技术监督和协调的机构。它由国际上来自不同专业的1 5个志愿者组成,其职能是负责I n t e r n e t标准的最后编辑和技术审核。I A B隶属于I S O C。
  3. Internet工程专门小组(I E T F,Internet Engineering Task Force)是一个面向近期标准的组织,它分为9个领域(应用、寻径和寻址、安全等等)。I E T F开发成为I n t e r n e t标准的规范。为帮助IETF主席,又成立了Internet工程指导小组(IESG, Internet Engineering Steering Group)。
  4. Internet研究专门小组(IR I F,Internet Research Task Force)主要对长远的项目进行研究。I RT F和I E T F都隶属于I A B。文献[Crocker 1993]提供了关于I n t e r n e t内部标准化进程更为详细的信息,同时还介绍了它的早期历史。

1.9 RFC

Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。目前RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。

1.10 标准的简单服务

有一些标准的简单服务几乎每种实现都要提供。在本书中我们将使用其中的一些服务程
序,而客户程序通常选择Telnet。图1 - 9描述了这些服务。从该图可以看出,当使用TCP和UDP提供相同的服务时,一般选择相同的端口号。

服务名TCP端口号UDP端口号RFC描述
echo77862服务器返回客户发送的所有内容
discard99863服务器丢弃客户发送的所有内容
daytime1313867服务器以可读形式返回时间和日期
chargen1919864当客户发送一个数据报时, TCP服务器发送一串连续的字符流,直到客户中断连接。UDP服务器发送一个随机长度的数据报
time3737868服务器返回一个二进制形式的32 bit 数,表示从UTC时间1 9 0 0年1月1日午夜至今的秒数

1.11 互联网

• 以小写字母i开始的internet(互连网)是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络。在这些网络之间的通信协议(即通信规则)可以任意选择,不一定非要使用TCP/IP协议。
• 以大写字母I开始的Internet(互联网,或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络互相连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,而其前身是美国的ARPANET。

1.12 应用编程接口

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值