TCP/IP基础

1.TCP/IP 出现的背景及其历史
目前,在计算机网络领域,TCP/IP 协议名声很大且范围很广。为什么短时间内如此普及呢?
这就得讲到 ARPANET 的诞生。

2ARPANET 的诞生
最初,在军事领域,人们为了防止某一处受到通信攻击而导致通信瘫痪,采取了迂回线路组成的分布式通信,为了实现这种类型的网络,分组交换技术应运而生。如图2.1,2.2。
ARPANET(Advanced Research Projects Agency Network,阿帕网) 是分组交换技术的典型代表,也是全球互联网的鼻祖。
在20世纪60年代,很多大学和研究机构都开始着力于新的通信技术。ARPANET 就产生于此时。

容灾性较弱的中央集中式网络


容灾性较强的中央集中式网络

 

 


2.1TCP/IP 的诞生
ARPANET 网的实验,不仅仅是利用几所大学与研究机构组成的主干网络进行分组交换实验,还会进行在互连计算机之间提供可靠传输的综合性通信协议的实验。20世纪70年代前半叶,ARPANET 的一个研究机构发出了TCP/IP。在此之后,TCP/IP 的具体规范最终确定下来。

2.2 TCP/IP 的具体含义
有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际上在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属 TCP/IP 的协议。TCP/IP 泛指这些协议,因此,有时也称 TCP/IP 为网络协议族。

 

3. TCP/IP 协议分层模型
TCP/IP 是当今计算机网络界使用最为广泛的协议。那么,TCP/IP 究竟是什么?本节对 TCP/IP 做一个简单的介绍。

3.1 TCP/IP 与 OSI 参考模型


从图不难看出TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议的必要功能是什么”,而TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

 

3.2 网络接口层
网络接口层(叫法很多。例如,网络接入层、网络访问层、网络链接层)利用以太网中的数据链路层进行通信,因此属于接口层。可以把它当作让 NIC 起作用的“驱动程序”。将需要相互连接的节点接入网络中,从而为数据传输提供条件。

3.3 互联网层
也可以叫做网际互联层、网络互连层。互联网层使用 IP 协议,相当于 OSI 模型的第三层网络层。IP 协议基于IP 地址转发分包数据。

 

TCP/IP 分层中的互联网层与传输层的功能通常由操作系统提供。尤其是路由器,它必须实现通过互联网层转发分组数据包的功能。

IP
IP 隐含有数据链路层的功能,是分组交换的一种协议,跨越网络传送数据包,是整个互联网都能收到数据的协议,它是用过IP 地址作为主机的标识。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能实现通信。但它不具有重发机制,未到达对端主机或丢失都不会重发。因此属于非可靠性传输协议。

ICMP
当IP 数据包在发送途中一旦发生异常无法到达对端目标地址时,需要给发送端发送一个异常的通知。ICMP 就是为这一功能而之制定的。有时也被用来诊断网络的健康状况。

ARP
从分组数据包的IP 地址中解析出物理地址(MAC地址)的一种协议。

3.4 传输层
TCP/IP 的传输层有两个具有代表性的协议。功能和OSI 参考模型中的传输层类似。

 

传输层最主要的功能即使能够让应用程序之间相互实现通信。

TCP
TCP 是一种面向有连接的传输层协议。它能保证两端通信主机之间的通信可达。正确处理传输过程中出现的丢包、传输顺序乱掉等异常情况,此外TCP 协议还能够利用宽带缓解网络拥堵。
TCP 的缺点,在传输过程中,为了建立和断开连接,有时他需要至少7次的发包收包,导致网络流量的浪费,且TCP 中的各种规范不利于视频会议等场合使用。

UDP
UDP 是一种面向无连接的传输层协议。UDP 不会关注对端是否收到了传输过去的数据,如果需要检查是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。
UDP 常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。

3.5 应用层
从前面的图可以看出,TCP/IP 的应用程序不仅要实现 OSI 模型中的应用层的内容,还要实现会话层和表示层的功能。

 

TCP/IP 应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫做服务端,接受服务的程序叫做客户端。
假如数据异常、超出负载等情况,客户端可以在稍等片刻后重发一次请求。

WWW


www 中文叫万维网,是一种互联网数据读取规范,有时也叫Web、www 或 W3 。用户在Web 浏览器上上网冲浪,浏览文字、图片、动画等信息,还能播放声音以及运行程序。
浏览器与服务器之间通信所用的协议是 HTTP(HyperText Transfer Protocol) 所传输的数据格式主要是HTML 。WWW 中的 HTML(HyperText Markup Language) 属于 OSI 应用层的协议,而 HTML 属于表示层的协议。

 


发送电子邮件所用到的协议叫做 SMTP (Simple Mail Tranfer Protocol)。最初,人们只能发送文本格式的电子邮件,但现在电子邮件的格式由 MIME 协议扩展以后,可以发送声音、图像等各式各样的信息。MIME 属于 OSI 参考模型的第六层–表示层。

文件传输


文件传输是指保存在其他计算机硬盘上的文件转移到本地的硬盘上,或者将本地硬盘的文件传输到其他机器硬盘上的意思。
该过程使用的协议叫做 FTP(File Tranfer Protocol),传输过程中可以选择用二进制方式还是文本方式。
在 FTP 中进行文件传输时会建立两个TCP连接,分别是发出传输请求时所要用到的控制连接与实际传输数据时所要用到的数据连接。

TCP/IP 网络中远程登录常用 TELNET 和 SSH 两种协议。其余还有BSD UNIX 系中rlogin 的 r 命令协议以及 X Window System 中的 X 协议。

网络管理(SNMP)


在 TCP/IP中进行网络管理时,采用 SNMP(Simple Network Management Protocol)协议。使用 SNMP管理的主机、网桥、路由器等称作 SNMP 代理(Agent),而进行管理的那一段叫做管理器(Manager)。SNMP正是这个 Manager 与 Agent 所要用到的协议。
SNMP可以让管理员及时检查网络拥堵问题,为扩大网络收集必要的信息。

4. TCP/IP 分层模型与通信示例
TCP/IP 如何在媒介进行传输?

4.1 数据包首部


每个分层都会对所发送的数据附加一个首部,在这个首部中包含了该层必要信息,如发送的目标地址以及协议相关信息。如图所示,在下一层的角度看,上一层收到的包全部认为是本层数据。

 

 

4.2 发送数据包
如下图,假设甲给乙发送电子邮件,内容是“早上好”。通过这个例子讲解 TCP/IP 通信原理。

① 应用程序处理
启动程序,收件人邮箱填好,输入内容,鼠标点击发送就开始TCP/IP 的通信了。
首先,应用程序中会进行编码处理。相当于OSI 的表示层中的功能。应用在发送邮件的那一刻建立 TCP 连接,从而利用这个TCP 连接发送数据。将数据发送给下一层的TCP 再做实际的转发处理。

② TCP 模块的处理
TCP 根据应用的指示,负责建立、发送数据以及断开连接、发送数据以及断开连接。TCP提供将应用层发来的数据 顺利发送到对端的可靠传输。为了实现TCP的这一功能,需要在应用层数据的前端附加一个 TCP 首部。TCP首部包括源端口号和目标端口号(用来识别发送主机跟接收主机上的应用)、序号(用以发送包中哪部分是数据)以及检验和(用来判断数据是否被损坏)。随后将附加了TCP 首部的包再发送给 IP。

③ IP 模块的处理
IP 将TCP 传过来的 TCP 首部和 TCP 数据合起来当作自己的数据,并在TCP 首部的前端再加上自己的 IP 首部。因此,IP数据包中IP首部后面紧跟着 TCP 首部,然后才是应用的数据首部和数据本身。IP 首部中包含接收端IP 地址以及发送端 IP 地址。紧跟 IP 首部的还有用力判断后面数据是 TCP 还是 UDP 的信息。

④ 网络接口(以太网驱动)的处理
从IP传过来的IP 包,对于以太网驱动来说不过就是数据。给者数据附加上以太网首部并进行发送处理。

 

4.3 经过数据链路的包

 

4.4 数据包接收处理
包的接收过程是发送流程的逆序处理。

⑤ 网络接口层(以太网驱动)的处理
⑥ IP 模块的处理
⑦ TCP 模块的处理
⑧ 应用程序处理

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值