TCP/IP学习笔记(一)分层模型概述

简单来说,协议就是不同计算机之间进行通讯所遵循的标准,只有使用相同协议的计算机之间才可以实现网络通讯。这使得即使两台计算机之间的各种设备不同,只要使用的协议相同,就可以通讯

以两个人对话为例,协议可以理解为语言(如规定语言协议是汉语),那么只有两人都说汉语时才能进行正常的对话,对话的内容就是通讯数据

对协议进行分层可以使复杂的网络协议更加简单化,每个分层都接受由它下一层提供的特定服务,同时负责为自己的上一层提供特定的服务

OSI参考模型

OSI模型将协议分成7层(应表会传网数物)

各层作用


TCP/IP协议分层模型

TCP/IP模型是在OSI模型上演变出的,至今仍然展现着强大生命力。二者的区别在于

  • OSI参考模型注重“通讯协议必要的功能是什么”
  • TCP/IP强调“在计算机上实现协议应该开发哪些程序”

硬件(物理层)

顾名思义,物理层主要表现在计算机硬件的传输介质上,比如网线,光缆等

网络接口层(数据链路层)

该层可以简单理解为驱动,由于硬件安插在计算机上需要通过驱动进行交互。如显卡,主板,声卡驱动等

注,有的书中将物理层和数据链路层合并成网络通讯层,所以说TCP/IP是四层模型或者五层模型都可以

互联网层(网络层)

网络层主要采用IP协议,IP协议基于IP地址转发分包数据。该层主要包含IP,ICMP,ARP等几个协议

  • IP协议用于跨越网络传输数据,由于每个主机都有区分于其他主机的ip地址,所以可以根据地址进行分发。该协议不具备重发机制,如果数据包没有顺利到达对端,也不会重新发送,是一种不可靠协议(重发机制由传输层提供)
  • ICMP协议保证当数据没有成功发送到对端时,会给发送端发送异常通知。常用于网络诊断,例如ping程序(也正因为如此,ping不需要走传输层,直接和应用层通讯,所以采用原始套接字)
  • ARP主要用于解析物理地址

传输层

传输层主要由TCP和UDP两种协议组成

  • TCP是一种面向连接的字节流传输层协议。两端必须在确认连接建立成功后才可以正常通讯(三次握手),同样必须进行相互通知确保连接正常关闭(四次挥手)。此外,TCP是一种稳定的传输协议,提供了重传机制,并且可以根据数据序列号保证数据的有序性。常用于对稳定性有一定要求的程序
  • UDP是一种面向无连接的数据报传输层协议。相比于TCP简单很多,没有过多繁琐的机制及算法,带来的好处就是省去了三次握手四次挥手这七次报文传输时间,常用于即时通讯,如视频等

由于TCP是字节流协议,分组之间没有明确的间隔,所以send和recv处理的数据个数通常都不匹配。而UDP基于数据报,分组之间间隔明确,每次处理都是以数据报为单位。当然TCP也可以实现分隔,但是需要应用层对发送和接受的数据做一些处理(比如增加前缀表示数据长度等)

TCP协议涉及到的内容比较多,如滑动窗口,拥塞队列,nagle算法,延迟ACK等

应用层

应用层包含各种应用所需要的协议,如HTTP,FTP,TELNET等协议

小结

分层模型展示了TCP/IP具体的内容,每一层都由不同协议组成。通常的应用程序最多也就同应用层和传输层交互,而网络层,数据链路层,物理层等相对底层。此外比较重点的内容在传输层的tcp和udp两种协议上,tcp涉及到tcp协议栈,只有弄清楚底层是如何工作的,才能对tcp进行优化,出现bug知道问题在哪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值