tcp/ip协议
TCP/IP协议简介
TCP/ip协议是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。
7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示层 例如XDR、ASN.1、SMB、AFP、NCP
5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBiOS、ASP、Winsock、BSD sockets
4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
3 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
2 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 物理层 例如线路、无线电、光纤、信鸽
数据链路层,某种程度可以理解成以太网的MAC层。我们来看下它的具体定义:
“所谓链路,就是从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点。数据链路则是另外一个概念。因为当需要在一条线路上传送数据时,必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路”简而言之,也就是说数据链路层负责处理物理硬件接口细节。它定义了将数据组成正确帧的规范和在网络中传输帧的规范。
网络层,网络层位于数据链路层之上,它负责处理分组在网络中的活动。同时,它负责提供互联网的“虚拟网络”镜像(可以理解成IP地址)。本层定义了网络中传输的“信息包”格式,以及从一个终端到达另一个终端的路由转发机制(路由器转发)。本层包括IP、ICMP、IGMP、ARP等协议。
运输层,在以太网通讯中我们面临这样一个问题,前面所述的协议可以实现电脑A到电脑B的通讯。然而A、B上都有很多的进程在跑,光用上面的协议是不能实现电脑A上的进程1到电脑B上的进程2的通信,也就是我们说的端到端的通讯。为解决这个问题便有了TCP协议和udp协议。TCP协议是面向连接的(两个进程要传输数据要先建立一个链接),它提供可靠的数据传输服务,提供诸如流量控制、拥塞控制、超时重传等功能。UDP协议是面向无连接的传输协议,不提供可靠的传输,但保证实时性。举个例子,如果你通过以太网发送一封邮件,那么你的侧重点一定是对方收到邮件一定是跟我发的一模一样才好。这时候传输用的就是TCP协议了,它能保证可靠性。再比如,如果一公司正在开网络视频会议,你一定希望画面能是及时画面,而不是因为某些原因导致的10s、20s前的画面,这时候使用的UDP协议。
应用层:定义了应用程序使用互联网的规范,负责处理特定的应用程序细节。如FTP、SMTP、Telnet等。
讲了这么多概念,我们来看下一次完整的互联网是数据传输是如何进行的。
主机H1将数据通过层层打包后传输给R1(路由器),R1对从H1传来的包解析(解析道网络层),并根据提取出的目的IP找寻到下一个可转发路由器的硬件地址R2(或者主机硬件地址)。然后将数据包重新打包,改变源地址、目的地址,发给R2。以此类推,发送给主机H2,解包后交给应用进程。值得注意的是,这个过程中,数据包的源、目的IP始终不变,但它的源、目的硬件地址却是一直在改变的。从这个大家应该也可以体会出IP地址和硬件地址的区别了吧。
文章最后发布于: 2018-09-30 10:09:06
相关阅读
Eclipse运行项目报no route to host : connet
在使用Eclipse启动项目是,报no route to host : connet错误。觉得很奇怪,代码也没有报错怎么运行后报错了呢?调查一番后发现用于开发
京东广告投放开始签订年度框架协议,各位应该盘点下各自今年的投放广告的金额了,大家发现每次充钱不心疼,年底盘点总金额心疼了,为啥当
ipad3隐藏功能开启需越狱并需装有ifile或使用电脑端管理工具(如ifunbox iTools等,且需要plist编辑器)完成。 1、打开用量里面的使
iPhone、中国移动其放大招,今后企业的电话销售之路,还能
如果你企业的销售方式,是单一的电话销售模式,那么告诉你,该!转!型!了!iPhone大招:iPhone最近上线的 iOS 13 有一项新功能,能帮助用户对抗骚
网络传输协议或简称为传送协议(Communications Protocol[1] ),是指计算机通信的共同语言。现在最普及的计算机通信为网络通信,所以