TCP/IP通信架构

1 .计算机网络的体系结构

计算机网络是一个非常复杂的系统,将整个网络的传输功能进行分层设计的网络结构层次模型及各层协议的集合称为计算机网络的体系结构。为了解决异构互联及通信问题, 20 世纪 70 年代后期国际标准化组织( ISO )制定了 OSI ( Open System Interconnect )开放式系统互联参考模型。该模型采用了三级抽象,即体系结构、服务定义和协议规格说明,是一种标准化的理论参考模型。

开放式互联网( Internet )发展的第一阶段是从单个网络 ARPANET 向互联网发展的过程,以 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议为里程碑。 TCP/IP 是事实上的国际标准。

2 TCP/IP 参考模型

TCP/IP ,全称为 Transfer Controln Protocol/Internet Protocol ,即传输控制 / 网际协议,它并不单只 TCP 和 IP 这两个协议,而是用于计算机通信的一组协议,我们通常称之为 TCP/IP 协议族。

TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,如图 1 所示。

图 1 OSI 体系结构与 TCP/IP 体系结构的关系

2.1 .物理层( Physical Layer )

物理层把比特流传送到物理媒体。电气信号(或光信号)在物理媒体中传播,比特流从发送端物理层传送到接收端物理层。物理层接收到比特流,上交给数据链路层。主机的网卡、 RJ45 以太网接口、网线等硬件设备均属于物理层范畴。

2.2 .数据链路层( Data Link Layer )

数据链路层也称为网络接口层,它的功能是将网络层提交的数据报( IP Datagram )封装成(以太网)帧后提交给物理层,或从物理链路上接收到的数据帧中萃取数据报提交给网络层。

对于一个给定的(物理)连接来说,链路层协议主要实现在网络适配器中,即我们常说的网卡( NIC , Network Interface Card )。传输节点的网络层把 IP 数据报传递到适配器,由适配器将此数据报封装到链路层的帧中,然后把这个帧传输到物理层通信链路。

现在一般都是以太网卡,上面跑的是以太网驱动。 DSL 通信中的 PPPoE 即 Point to Point Protocol over Ethernet ,其层级同网络层。

2.3 .网络层( Network Layer )

Internet 的网络层通过一系列的路由器在源地址和目的地址之间传输数据包,它依赖于底层链路层的服务。由于该层的主要协议是 IP 协议,因而也可简称为 IP 层。它是 TCP/IP 协议栈中最重要的一层,主要功能是可以把源主机上的分片( Fragment )发送到互联网中的任何一台目标主机上。

网络层包含了子网操作,它是懂得网络拓扑结构(网络中机器的物理配置,带宽的限制等)的最高层,也是内网通信的最高层。涉及到 ARP 协议,ICMP 协议, RIP 、 OSPF 、 BGP 等路由协议和路由器设备。

2.4 .传输层( Transport Layer )

我们通常所说的两台主机之间的通信其实是两台主机上对应应用程序之间的通信,传输层提供的就是应用程序之间的通信,也叫端到端( host-to-host end-to-end )的通信。在 TCP/IP 协议族中传输层包含点对点( Peer to Peer )的传输协议:一个是 TCP (传输控制协议);另一个是 UDP(用户数据报协议)。

TCP 是一个可靠的面向连接的协议,它允许源于一个机器的字节流( byte stream )被无错误地传输到 Internet 上的任何机器。 UDP 是一个不可靠无连接的协议,它是为那些不需要 TCP 的序列号管理和流控制而想自己提供这些功能的应用程序设计的。

2.5 .应用层( Application Layer )

应用层是指建立在传输层之上,直接面向用户,向用户提供特定的、常用的应用程序。如远程登录服务( tcp/telnet )、超文本传输协议(tcp/http )、文件传输协议( tcp/ftp )、实时流媒体协议( tcp/rtsp );动态主机设置协议( udp/dhcp )、简单文件传输协议( udp/tftp)、实时传输协议( udp/rtp )等。

鉴于 TCP 和 UDP 协议各自的特性,有些应用综合使用两种协议。例如 DNS 在某些情况下使用 TCP (发送和接收域名数据库),但使用 UDP 传送有关单个主机的信息; RTSP/RTP/RTCP 使用 TCP 实现流点播控制,使用 UDP 实现数据传输及控制。

3 TCP/IP 协议模块

TCP/IP 协议模块关系如图 2 所示。

图 2 TCP/IP 协议模块关系

TCP/IP 协议分为四层结构,这四层结构中有两个重要的边界:一个是将操作系统与应用程序分开的边界,另一个是将高层互联网地址与低层物理网卡地址分开的边界,如图 2-3 所示。

图 3 TCP/IP 协议模型的两个边界

3.1 .操作系统边界

操作系统边界的上面是应用层,应用层处理的是用户应用程序(用户进程)的细节问题,提供面向用户的服务。

3.2 .地址边界

地址边界的上层为网络层,网络层用于对不同的网络进行互联,连接在一起的所有网络为了能互相寻址,要使用统一的互联网地址( IP 地址)。

4 .基于 TCP/IP 架构的网络通信模型

如图 4 所示的 TCP/IP 协议通信模型,这个模型尽管是由分析主机 A 和主机 B 通信而来的,但该模型是一个一般的模型,也适合于网络中其他主机之间的通信描述。

该模型中,主机 A 和主机 1 组成了端到端( Endpoint to Endpoint )的系统。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java思维导图

理解TCP/IP三次握手与四次挥手的正确姿势

背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网络...

29870
来自专栏同步博客

OSI七层模型学习笔记

  OSI模型全名Open System InterConnect 即开放式系统互联,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络...

12950
来自专栏运维小白

TCP/IP三次握手四次挥手

背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网...

28650
来自专栏逸鹏说道

探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/d...

38080
来自专栏程序猿

OSI与TCP/IP各层的结构与功能,都有哪些协议

在实际的开发中,网络编程占据很大一部分。从基本的应用与服务之间的数据传输,到性能优化;在从那些代理应用,路由跟踪,到匿名网络。无不应用到网络中的...

42850
来自专栏SDNLAB

Ryu:网络时延探测应用

之前,笔者已经发布了网络感知应用和基于跳数的最短路径转发应用。本文将介绍笔者开发的网络时延探测应用。该应用通过LLDP数据包的时延和Echo数据包的时延计算得出...

45880
来自专栏JetpropelledSnake

Python Web学习笔记之图解TCP/IP协议和浅析算法

21540
来自专栏Vamei实验室

协议森林07 傀儡 (UDP协议)

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种...

23860
来自专栏Java面试通关手册

搞定计算机网络面试,看这篇就够了

OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用。在这里顺带提一下之前一直被一些大公司甚至一些国家政府支持的OSI失败的原因:

23800
来自专栏安富莱嵌入式技术分享

【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识

本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作。

14030

扫码关注云+社区

领取腾讯云代金券