OSI参考模型与TCP/IP参考模型
- 物理层:指的是电信号的传递方式,比如现在以太网通用的网线
- 链路层:负责网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。
- 网络层:负责点到点的传输(这里的“点”指主机或路由器),Internet上的主机通过IP地址来标识,IP协议是构成Internet的基础。
- 传输层:负责端到端的传输(这里的“端”指源主机和目的主机)。传输层可选择TCP或UDP协议。
- 会话层: 解决传输层有一个发送方多个接收方时确定发给谁的问题
- 表示层:解决会话层仅仅是文字的交互,提供多种数据格式的显示功能(编码)
- 应用层:将表示层封装,提供用户接口
什么是协议?
- 双方“约定”好的,按照一定格式传输固定数据
数据包封装
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装
- 不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据包,在链路层叫做帧
TCP/IP协议族
大致可分为三部分
- internet协议(IP)
- 传输控制协议(TCP)和用户数据报协议(UDP)
- TCP/UDP之上的一组协议,专门开发应用程序,如http、smtp、dns、rtp
传输层协议-TCP
- 传输控制协议(TCP),一种可靠的面向连接的传输层服务、
- “三次握手”:类似生活中打电话。
简单理解:
客户端:我要对你讲话,你能听到吗;
服务端:我能听到;而且我也要对你讲话,你能听到吗;
客户端:我也能听到。
…….
互相开始通话
………
- “四次挥手”:
简单理解:
客户端:我说完了,我要闭嘴了;
服务端:我收到请求,我要闭耳朵了;
(客户端收到这个确认,于是安心地闭嘴了。)
…….
服务端还没倾诉完自己的故事,于是继续唠唠叨叨向客户端说了半天,直到说完为止
…….
服务端:我说完了,我也要闭嘴了;
客户端:我收到请求,我要闭耳朵了;(事实上,客户端为了保证这个确认包成功送达,等待了两个最大报文生命周期后,才闭上耳朵。)
(服务端收到这个确认,于是安心地闭嘴了。)
传输层协议-UDP
- 用户数据报文协议(UDP),UDP 提供不可靠的非连接型传输层服务。
- 使用UDP时,不需要建立连接,也不跟踪这些参数,开销小,空间和时间上都具有优势。只需要知道对方的IP地址和端口号,就可以直接发送数据包。但是,能不能到达就不知道了。不可靠,但是传输速度快
简单理解:
类似生活中邮箱,把信件扔到邮箱中,至于有没有人去看它,没有人在乎。
TCP/IP通讯过程
文末给大家分享c/c++ Linux服务器高阶知识视频资料的朋友请加qun720209036获取
知识点有C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等。