8.3 TCPIP协议族
接下来我们要学习的内容是TCP/IP协议族.TCP/IP协议族在网络系统中是非常重要的.这一个协议族当中牵涉到许许多多的我们平常所用到的协议.TCP/IP呢它也有分层模型.然后我们讲到的就是三方面的内容.一方面呢是TCP/IP分层模型.它是如何分层的,然后这些分层呢与OSI这种协议分层有什么不同?
第二方面呢是需要掌握的常用的协议.就是TCP/IP协议族里面的一些常用协议.
第三方面呢是常用的端口常识.因为实际上在软考当中已经考到了几次关于应用端口的一个的一个了解.
首先我们看到的就是TCP/IP分层模型.TCP/IP它的分层就没有这个OSI它的分层那么多.主要呢分成了四层,第一层是网络接口层,网络接口层对应的是OSI模型当中的数据链路层和物理层.
接下来呢是网络互连层,网络互连层也就是OSI模型当中的网络层.
接下来是主机对主机层.它对应的是OSI中间的传输层.
第四层呢就是应用层.应用层对应了OSI参考模型当中的最上的资源子网的那三层.也就是应用层、表示层和会话层.那么它进行这样子的分类,每一类每一层又有何用途呢?
首先我们要看到的是这个网络接口层.网络接口层呢又称为数据链路层.它是处于TCP/IP协议层之下.它负责接收IP数据包并且把数据包通过选定的网络传送出去.这一层呢包含着设备驱动程序,也可能是一个复杂的使用自己的数据链路协议的子系统.
然后我们来看网络互连层.网络互连层又叫网际层.也称为IP层.主要是处理机器之间的通信问题.机器之间的通信问题.它接收传输层的请求,传送某一个具有目的的地址信息的分组.具有目的信息的一个分组.把分组呢封装到IP数据报.然后填入数据报的首部.也就是,首先呢我们把数据封装到数据报里面,然后呢再填写报头.这个工作就相当于一个邮局,邮局完成的工作.邮局的前台工作人员,比如说我说我要寄几本书,然后呢邮局的服务人员会把我的书先打包,就相当于一个IP数据报打成了一个包,打成一个包呢然后在打包上面会贴一张条纸.就是记录你的书要送往哪里,邮寄到哪里,收件人是谁?地址是什么?把这些信息填充好之后然后就可以发包出去了.那么网际层呢就是完成的这一个工作.就首先把数据放到IP数据报中,然后把IP数据报的首部填好,然后就使用路由选择算法,路由选择算法,把数据报呢发到目标主机或者是发到路由器,让路由器再进行转发.这是发送.
那么网际层呢它还负责了接收.比如说它收到了一个数据报,收到数据报之后呢它首先要检验它的正确性.检验完正确性之后呢就分析这个报头,然后呢把数据取出来,取出来之后把这个数据、报头这些东西去除,去除之后呢传给传输层.
第三方面呢就是发出ICMP差错和控制报文.并且处理收到的ICMP报文.ICMP我们知道是一个信息的一个控制协议.比如说我们平常发IP包啊这些东西,都要用到ICMP协议.这些协议呢我们待会会具体来讲.
再下来呢我们就看到的是这个主机对主机层.主机对主机层它的一个基本任务就是提供应用程序之间的通信服务.也可以叫是端对端之间的通信.传输层呢既要进行系统的管理,数据信息的流动呢还要提供可靠的传输服务.
最后就是应用层,应用层是这个模型当中的最高层.用户调用应用程序来访问TCP/IP互联网络的时候呢,已享受网络上的各种服务.应用层就是这么一个作用,等于是提供了一个接口.就是用户和TCP/IP网络之间的一个接口.一个操作接口.应用程序呢它负责的是发送和接收数据,每一个应用程序都可以选择需要的传输服务类型.并且把这个数据按照传输层的要求组织好,往下面传.
这个是TCP/IP的一个分层模型.这样子来分层呢就把一些中间的一些感觉比较复杂的一些流程给去掉了.留下来几个主体的有实在意义的一些层次.
下面我们就来看需要掌握的一些常用协议.我们右边就把这一个层次对应关系给它画出来了.就是OSI协议层和TCP/IP的协议层.首先呢我们看到的是第三层的协议,从底下一层一层上来.第三层主要用到的协议呢有IP协议,ARP协议,RARP协议,ICMP协议,EGP协议等等协议.这个里边呢又属这个IP协议最为重要.IP协议又称为Internet协议,或者是网际协议.这个协议呢是Internet协议的核心.就整个的协议族的核心.在网络通信的过程中,网络组件的寻址、对信息的路由选择和传输,这些功能呢它都要用到IP协议.所以说IP协议是一个核心,相当的重要.IP协议呢就定义了这个IP地址,IP地址它是一个逻辑的地址.现在呢我们使用到的IP地址,它的长度是4个字节.现在我们用的呢是IPV4.IPV4四个字节呢是每一个字节对应着一个十进制数,然后呢4个字节就分成了四段.四段分别用.号隔开.这样子就是一个IP地址.你比如说192.168.0.1,这个就是一个IP地址.
然后呢还有ARP协议和RARP协议,ARP协议它是一个地址解析协议.所谓地址解析呢就是将IP地址转换为相应的网络物理地址,也就是mac地址.ARP协议它的一个功能就是将IP地址转成对应的mac地址.这是为这个网络接口层提供便利的一个提供的一项服务.因为呢网络接口层它只认这个mac地址,而不认IP地址.所以我们在数据进行到达这个网络接口层的之前呢我们要进行这么一个转换.
接下来是RARP协议.RARP协议它是反地址解析协议.它和ARP协议呢刚好是相反的,它是把IP协议和物理地址协议进行转换.把现有的mac地址转成IP地址.将mac地址转成IP地址.
再要看到的就是这个ICMP协议.ICMP协议呢又称为Internet信息控制协议.ICMP协议它是建立在IP协议之上的.因为ICMP协议传送的时候是以IP包作为传送单位来传达信息的.ICMP呢主要有四大功能,第一项工作呢就是通告网络错误功能.第二项呢是通告网络拥塞.第三项是协助解决故障.第四项呢是通告超时.首先呢我们来看这个通告网络错误.ICMP它的通告网络错误功能.比如说某一台主机或者是整个网络,由于某些故障它不可达,就比如说我发一个数据包,A主机发一个数据包到B主机.结果呢B主机无法到达,由于有网络故障无法到达.那么呢我们的A主机会收到一个ICMP的报告,就告诉你刚才发送的这个数据包呢没有被主机收到.没有被目的主机收到.这个是它的一个通告网络错误的一个功能.不然的话呢你的数据包发出去之后你也不知道对方是否收到了.
第二项呢是通告网络拥塞的功能.就是当路由器、缓冲包太多的时候,它们已经无法正常地进行收发工作,进行路由工作.那么呢此时也会产生ICMP源结束的信息.它会告诉发送者,现在的网络处于一个拥塞状态.当接收者接到这个信息之后,可能会降低对于网络的使用.
第三方面呢是协助解决故障.协助解决故障那么我们很好理解.就我们平常所用的ping,所用的ping实际上就是利用了ICMP协议的一个工具.ping是属于ICMP协议的.利用到了ICMP协议.当我们ping一个主机的时候,实际上呢就是向这个主机发IP包.然后对方主机如果收到这个IP包之后呢,会做出反应.作出响应,给你回复.然后如果说我们收到回复我们认为我们能够,从A主机能够到B主机.否则的话呢就证明从A主机到B主机的链路出了问题.网络出了问题.所以呢它可以协助我们解决一些故障,发现一些故障.当然现在防火墙用的比较多的话,也有可能这种信息采集不准.比如说B主机装了一个防火墙,那么呢它可能对A主机发来的ICMP这个包不响应直接丢弃了.这样子呢A主机就认为B主机不可达到.实际上是可以到达的.
第四点呢就是通告超时.如果一个IP包它的TTL值降到0的时候,路由器呢就会丢掉这个包.但是丢掉这个包的同时呢,它要向发送者发送一个通告,一个通知.告诉你这个包丢弃了.而ICMP就负责完成这一项功能.就是告诉发送者这个包已经被路由器给扔弃掉了,丢弃掉了.
EGP协议呢用的比较少,我们这里就不介绍了.EGP呢是一个用于路由的一个协议.
然后再看到的是传输层协议.传输层的UDP和TCP协议是非常重要的协议.它们呢都是基于IP的协议.都是基于IP的协议.TCP协议呢它提供的是一种面向连接的一种服务.而UDP呢是面向无连接的.连接和无连接是什么概念呢?我A主机和B主机要进行通信,如果采用TCP的协议的话呢,A和B之间就相当于建立了一条独立的通道.这个通道呢负责信息的收发、传输,而如果是UDP协议呢,那么A和B之间就并没有这么一个链路.而是A发送一个包,就发送出去了,又发送第二个包,又发送出去了.就是把一段数据分成很多个包来往外面发,这个包里面就记录了我们的目的地址.这样子呢这些包可能会通过不同的路径到达B.所以说呢UDP它的一个传输效率会要比TCP的要高.但是它的可靠性没那么高.因为在进行TCP传输的时候,进行TCP传输的时候,一旦B没有收到某个包,没有收到A的包,那么呢立即就会有反馈.但是UDP传输呢,丢掉了包,要等到最后对这些包进行组合的时候才能够发现是否丢包了,再给B发一个反馈,要求重发.如果说呢这一个数据足够的小,只有一个数据包,那么呢它就有可能没传到B而中途丢弃了.丢弃之后呢这个B并不知道有这么回事.就像我们发短信,我们发短信实际上也有一定的丢失率.如果呢我连续发了好几条短信,内容又比较相关,那么接收的人可能会感觉到中间丢了一些内容.发现这个问题.但如果说我总共就给它发一条短信,而这条短信呢由于机械的故障它没有收到.没有收到的话它绝对不会产生任何疑问,是不是A给我发了短信.所以说呢UDP它是一个可靠性不是那么高的一个协议.
再接下来是应用层.就是TCP/IP的一个应用层.TCP/IP应用层首先得掌握的就是HTTP协议.HTTP协议呢是我们平常见得最多的一种协议了.HTTP协议又叫做超文本传输协议.它是用于从WWW服务器传输超文本到本地浏览器.它用于从WWW服务器传输超文本到本地的浏览器.它可以使得浏览器非常高效.而且呢使用网络传输减少.它能够保证正确地、快速地传输这个超文本文档.同时呢还能够确定传输文档的哪一个部分,以及哪部分内容的先显示.这些都能够进行控制.也是一个比较完善的一个协议.我们平常也用的非常多的一个协议.我们去浏览网站都要用到这一个协议.这个是HTTP协议.
接下来需要了解的是这个FTP协议.FTP就是文件传输协议,它的作用呢就是让用户连上一个远程计算机,然后查看这个计算机有哪些文件.并且呢做一些下载文件和上传文件的一些控制.所以呢它叫文件传输协议.FTP呢它的工作原理是这样子的.你比如说我要下载一个文件.我连上了一个FTP服务器.要拷贝这个文件的时候实际上呢是本地打开了一个进程,而主机,你连接了FTP主机也打开了一个服务程序.当我客户端向主机服务器提出拷贝文件请求的时候,FTP的那个服务器响应,然后把文件传送过来.FTP实际上是这么一个过程.
再看SMTP.是简单邮件传输协议.简单邮件传输协议呢它的目标是可靠而高效地传送邮件.它独立于传送子系统.而且呢仅要求一条可以保障传输数据单元顺序的一个通道.所以呢它是基于这个TCP的.TCP呢就是建立了从A到B的一个顺序传输的一个通道的.所以它是基于TCP的.SMTP呢它还有另外的一个重要特性.就是能够跨网络传输邮件.这个会被称为呢SMTP的邮件中继.
我们再要看到的是这个TELNET协议.TELNET协议它的一个流行还是有一定的渊源的.TELNET协议其实以前用的很多,用的人非常的多.你比如说以前的BBS,都是采用的这个TELNET.像以前的水木清华,然后等等等等,很多很出名的这种BBS,它都是采用的TELNET方式.这个是原因呢就是因为以前呢计算机比较少,而且功能强大的计算机呢,那就是更加少之又少了.如果说你买到了一台非常差劲的计算机,但是呢又想得到一些比较高级的服务.你自己这台计算机无法运行的一些服务,那么呢比如说是一些复杂的一些运算.那么呢我们可以通过TELNET进行远程登录.登录到一台运算能力比较强的一台计算机.登录到这么一台计算机或者是服务器,登录到这台计算机之后呢,你就相当于是这一台计算机的终端.相当于一个终端.然后呢你所做的操作就完全是在服务器上完成了.所以说呢就使得有一些PC机无法完成的一些运算就能够完成了.就通过服务器来完成.
它TELNET运行的一个过程,实际上是这样子的.首先呢TELNET的客户端,它会向服务器发出请求,请求连接,请求连接以后呢就会建立与这个服务器的TCP连接.也就是感觉一个独立的通道.建立这样子的连接.然后呢从键盘上输入一些字符命令,你从自己的键盘上面输入字符界面,输入字符,输入的字符呢会直接传送到远程服务器.远程服务器呢就开始进行处理.处理完你的命令以后,这个输出信息会从远程服务器发送到你的计算机上面.再从屏幕上显示出来.这就是Telnet的一个全过程.
最后我们要看到的就是SNMP.SNMP呢它是一个简单的网管协议.简单的网管协议.所以说这一些协议是需要大家掌握的.
我们再要看到的就是常用端口的一些知识.我们可以将端口分为三大类.
公共服务保留端口它是绑定于一些常见的一些服务.通过这些端口呢我们就能够明确地知道是某一种服务在起作用.你比如说呢20端口,
POP3是邮件的接收协议,一个接收协议.然后119端口呢是NNTP,就是新闻组传播协议.
所以一些常用的端口呢我们也把它记住.
注册端口.它们是进行一些松散的绑定.也就是许多的服务绑定了这些端口.这些端口同样用于许多其他的目的.
动态/私有端口:就是大家都能够用的一些端口.就自己编写一个应用程序,就可以从中选择一些端口.选择这些端口呢一般情况是不会冲突的.
例题:
这个就描述了WWW页面访问的一个大致流程.首先我们要明确的一点呢,就是WWW页面的访问也就是网页的访问,它是用的HTTP协议.所以毫无疑问第三问应该是要选HTTP.而HTTP呢我们刚才看到了,HTTP它是建立在TCP协议之上的.所以是建立一条TCP的连接.这么两空我们就确定了.
然后再看第一空输入页面的什么地址.EMS地址显然是错误的.EMS快递.DNS呢是域名解析服务器.域名解析服务器呢它的用途就是将相应的域名,你比如说csai.cn,把它解析成对应的IP地址.对应的IP地址.所以D也不正确.A呢是URL地址,URL的意思呢就是统一资源的链接地址.所以呢我们这一题应该选A.
那么第二空呢是Web服务器,要找出Web服务器所对应的IP地址.那其实就是域名到IP地址的一种转换.就应该是选择DNS服务器来完成从域名到IP地址的解析.
最后第五空是发送什么样的命令来取出文档?TCP和UDP显然不对,然后GET、PUT我们其实HTTP相关的文档里面就已经严格规定了是用GET来取出文档.然后发送回来,然后显示文档.
FTP默认的控制端口是21,默认端口是20.HTTP的默认端口是80.
这里之所以呢就说到了这个公共服务保留的端口,和我们刚才所介绍的有点区别.就是我们是从0开始的,而这一个公共服务保留端口呢是从1开始的.原因是这样子的.就是0号端口现在的界定还不是那么严格,0号端口是还没有一个实际用途的.所以这里呢就把这个0号端口区分在外.
所以这些协议是相当重要的.如果现在我们对每一个协议都有非常清晰的一个概念的话呢,解这些题是完全不成问题的.
Internet的核心是IP协议.我们前面就提到了IP协议是TCP/IP协议族中间的一个核心.也同时是因特网协议的一个核心.在这个基础上,IP协议基础上,无连接的所以是UDP协议.SMTP,简单邮件传输协议.那么以太网(Ethernet)和因特网它们之间的连接,它们之间的连接要用到什么协议呢?以太网,以太网只有两层,就是OSI中间的最后两层,就是数据链路层和物理层.那么它要与Internet相连接的话呢就肯定需要有接口.这些接口呢应该是处于第三层的.因为我们知道以太网呢是处于底下的两层的.它要与上层的这些Internet应用相连接的话,那肯定就要中间的这么一个衔接层.而处于第三层的协议有哪些呢?这里有UDP,有TCP,还有一个ARP协议.ARP协议呢是一个地址转换协议.我们刚才也讲到了,它的作用是把IP地址转为MAC地址.这就刚好符合我们的要求.Internet网上面它所用到的,它是基于一个TCP/IP协议族的,而以太网呢最多只能够处理到数据链路层的信息.所以它们中间的衔接呢就需要用到这个ARP协议.把IP包它的地址转成MAC地址,所以E选项呢应该是选⑤.
这里边就有我们以前没看到过的两个协议.一个是EDIFACT协议.一个是HDLC协议.它们分别是多行业电子数据互换标准和高级数据链路控制协议.
8.3 TCPIP协议族的更多相关文章
- 图解TCP-IP协议
本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 图1 TCP 三次握手四次挥手 图1 ...
- iOS的TCP/IP协议族剖析&&Socket
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有S ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- 转: 视频相关的协议族介绍(rtsp, hls, rtmp)
转自: http://www.zhihu.com/question/20621558 作者:杨华链接:http://www.zhihu.com/question/20621558/answer/1 ...
- TCP/IP协议原理与应用笔记10:TCP/IP协议族
1. 协议族视图如下:(这里我们列举重要的,并不是所有的) (1)网络接入层(数据链路层 和 物理层): 通过接入的物理网络的 功能 和 覆盖范围 进行分析划分为: •LANs :局域网(Local ...
- TCP/IP协议族
1.TCP(传输控制协议)/IP(网际协议)协议族是一个网络通讯模型,以及一整个网络传输协议家族,为互联网的基础通讯架构. TCP/IP四层协议的表示方法: 2.TCP/IP参考模型映射到OSI模型: ...
- wireshark 抓包分析 TCPIP协议的握手
wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...
- 服务器编程入门(1)TCP/IP协议族
问题聚焦: 简单地梳理一下TCP/IP各层的功能和常用协议 详细了解ARP(数据链路层)和DNS(应用层)协议的工作原理 1 TCP/IP协议族体系结构 数据链路层: 职责:实现网卡接口的网络 ...
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
随机推荐
- 用Docker构建Nginx镜像
1构建Nginx镜像 1建立工作目录 [root@localhost ]# mkdir 1nginx [root@localhost 1nginx]# cd 1nginx/ [root@localho ...
- luogu P4172 [WC2006]水管局长 LCT维护动态MST + 离线
Code: #include<bits/stdc++.h> #define maxn 1200000 #define N 120000 using namespace std; char ...
- 支持向量机(SVM)原理浅析
因为网页博客输入公式很麻烦,所以就在word上面写了,然后截图发上来. 后续关于SVM和FC在深度学习当中得使用对比分析,我再补充.
- enote笔记语言(2)(ver0.4)
why not(whyn't) 为什么不(与“why”相反对应,是它的反面) how对策 how设计 key-memo: ...
- Sublime Text 3 快捷键(转载)
本文转自:https://segmentfault.com/a/1190000002570753 (欢迎阅读原文,侵删) Sublime Text 3 快捷键精华版 Ctrl+Shift+P:打开命令 ...
- 基于element UI 的上传插件
为了不再重复的上传文件,做了一个统一选择文件和上传文件的 基于 element UI :http://element-cn.eleme.io 前端实现文件下载和拖拽上传 演示 用法 <uploa ...
- Django-Rest framework中文翻译-generic-views
通用视图 Django的通用视图......被开发为常见用法模式的快捷方式......它们采用视图开发中的某些常见习语和模式并对其进行抽象,以便您可以快速编写数据的常用视图,而无需重复自己. - Dj ...
- Nginx学习总结(3)——Nginx配置及应用场景之高级配置
一.Nginx反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet ...
- poj 3237 树链剖分模板(用到线段树lazy操作)
/* 本体在spoj375的基础上加了一些操作,用到线段树的lazy操作模板类型 */ #include<stdio.h> #include<string.h> #includ ...
- hdu 1811拓扑排序+并查集(容器实现)
http://www.cnblogs.com/newpanderking/archive/2012/10/18/2729566.html #include<stdio.h> #includ ...