1.OSI 7层网络模型

1.网络七层协议

(1)OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。

(2)各层功能定义
这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。后面我也会根据个人方向展开部分层的深入学习。这里我们就大概了解一下。我们从最顶层——应用层 开始介绍。整个过程以公司A和公司B的一次商业报价单发送为例子进行讲解。

<1> 应用层
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。

<2> 表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等

<3> 会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会话

<4> 传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。

<5> 网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说,从深圳发往北京的顺丰快递(陆运为例啊,空运好像直接就飞到北京了),首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。这个每个集散中心,就相当于网络中的一个IP节点。

<6> 数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。
MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。 在实际使用中,LLC子层并非必需的。

<7> 物理层
实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。
快递寄送过程中的交通工具,就相当于我们的物理层,例如汽车,火车,飞机,船。


2.TCP/IP协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

(1)TCP协议工作在OSI七层模型的传输层对上服务socket接口对下调用IP层,面向连接,可靠传输,不怕丢包、乱序。

(2)TCP在传输有效信息前要求通信双方必须先握手,建立连接才能通信,附带校验,以防止内容在传递过程中损坏,自动调节适配速率。


3.三次握手四次挥手

(1)TCP的三次握手:

首先Client端发送连接请求报文Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

(2)TCP的四次挥手:
断开过程:假设客户端先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。客户端发送释放报文FIN [第一次] 。服务器收到释放报文后发出确认报文ACK [第二次] 。服务器发出的连接释放报文FIN,并且还附带上次已发送过的确认号ACK [第三次] 。客户端在收到服务器的连接释放报文段后,发送确认报文ACK [第四次]


4.TCP/UDP的区别
TCP是面向连接的传输控制协议,传输数据之前需要先建立连接。UDP是不用建立连接的数据报传输协议。
TCP传输的是字节流,UDP传输的是数据报。UDP不会提供拥塞控制,即当传输量过大时,发送端的发送率不会变小。
TCP提供数据校验,数据重传,等服务来提供可靠的数据传输服务。而UDP是提供不可靠的数据传输服务,可能会丢包。
TCP提供一对一的服务,UDP提供一对多,一对一,多对一,多对多的传输服务。
TCP对系统的资源要求较多,UDP对系统的资源要求较少。

Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)相关推荐

  1. 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  2. 再深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    转载地址: https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 如果对网络 ...

  3. TCP/IP三次握手 四次挥手

    什么是三次握手.四次挥手 TCP建立连接的过程: TCP在传输之前会进行三次沟通,一般称为"三次握手", 传完数据断开的时候要进行四次沟通,一般称为"四次挥手" ...

  4. tcp 二次握手时延_一篇搞懂TCP的三次握手 四次挥手

    TCP的三次握手四次挥手,估计大家都听过.但是真的能把每一步说明白的人比较少.我还记得在之前面试的时候被面试官一顿问,然后一脸懵B... 都是大学没好好上课 ,这篇文章就跟大家讲讲到底这三握四挥是在搞 ...

  5. TCP三次握手四次挥手 TCP/UDP区别

    三次握手 第一次握手: 建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认:  SYN:同步序列编号(Synchronize Sequence Numbe ...

  6. HTTP HTTPS WEB的cookie机制 TCP UCP(三次握手四次挥手)

    1.HTTP 与 HTTPS 的区别 理解: 1.HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用.(以前网易官网 ...

  7. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程     1.OSI七层协议     2.基于tcp协议的套接字通信     3.模拟ssh远程执行命令     4.tcp的粘包问题及解决方案     5.基于udp协 ...

  8. python(18):网络编程(七层协议+tcp/udp+socket编程)

    Python作为最热门的语言,使我们每个人应该学习的一门技术! 本文针对初学者,我会用最容易的方式告诉你如何入门python! 一.基本网络概念 1.计算机之间如何进行联机 早期: 以太网:局域网与交 ...

  9. 网络编程-网路七层协议图(2)之每一层对应的设备及功能(物理层、数据链路层、网络层、传输层、应用层...)

    OSI七层协议在网络传输中扮演的角色及功能: 7.应用层--–电脑的各种数据 6.表示层 --– 处理用户信息的表示问题,如编码.数据格式转换和加密解密 5.会话层--–会话管理.会话流量控制.寻址. ...

  10. 网络基础之传输层协议介绍(“三次握手”和“四次挥手”)

    文章目录 一.TCP/IP协议簇的传输层协议: 1.TCP和UDP 2.TCP报文段 二.TCP的"三次握手"和"四次挥手" 1."三次握手" ...

最新文章

  1. VC++连接Mysql
  2. java 树 右键菜单_VUE实现Studio管理后台(八):用右键菜单contextmenu,编辑树形结构...
  3. 分享B2B信息发布小技巧
  4. python中popen转变时区_python中的subprocess.Popen()使用
  5. .NET/.NET Core中更清晰的堆栈跟踪
  6. 获取pheatmap热图聚类后和标准化后的结果
  7. 精(李沐)多头注意力,代码理解
  8. .NET环境下几种不同的邮件发送解决方案
  9. MacBook2016在SSD上安装Win To Go(成功经验分享)
  10. 转:从内部开始 认识Oracle数据库结构组件
  11. 如果计算机黑屏请分析原因是什么原因,电脑黑屏是什么原因 电脑黑屏原因分析【解决方法】...
  12. Arduino教程 RFID-RC522读IC卡门禁原理及破解防御
  13. 非极大值抑制算法详解
  14. ESPRIT 2019车铣复合编程基础到五轴 走心机 视频教程
  15. 32位16进制转换为10进制数
  16. 踩坑到怀疑人生:win10下tensorRT加速YOLOV5
  17. html聊天室ui,震惊!这个H5居然是在线聊天室!(内附完整教程)
  18. java mail 收 附件_使用 JavaMail 收发邮件,解决中文附件问题
  19. 【论文阅读】【三维目标检测】在Range view上做3D目标检测
  20. 华为--链路聚合原理与链路捆绑实验(含bond)

热门文章

  1. JAVAEE----HTML
  2. 有哪些可以推荐的文字生成绘画软件?
  3. 360急速浏览器的不能正常访问phpstudy的虚拟站点
  4. JAVA程序不同环境怎么运行_根据程序的构成和运行环境的不同,Java源程序分为两类,即________程序和________程序...
  5. PhotoShop简单随笔
  6. python谢尔宾斯三角形_Java——谢尔宾斯地毯,三角形
  7. Unity3D教程:动画合成教程(Animation Blending)
  8. Android软件广告屏蔽方法及代码
  9. Oculus之外,那些高大上的虚拟现实(VR)装备
  10. [转帖]华为的“大海思”与“小海思”