OSI/TCP/UDP

  • 昨天实在是忙的昏天黑地,完全没时间发文

  • 昨晚没睡好,但是今早却强行5点起床,不禁让我想到最近的一个梗

  • 科比退役后,一位苦逼的程序员问科比:你为何如此成功?

  • Kobe:你见过凌晨4点点纽约吗?

  • "":没有,我那时候一般都没下班,你问这个干吗?

  • Kobe:.......没有,随便问问。。。。。

OSI/TCP/UDP_第1张图片
1.jpg
生活的残酷,阻碍不了我们对知(zi)识(shi)的渴望
                                             -亚历山大.尼古拉斯.麦克劳林.胡索
今天继IP后了解一下相关的协议

OSI (Open System Interconnection) 开放式系统互联(模型)

  • 根据ISO(国际标准化组织)的标准,OSI把网络通信的工作分为7层
    可以理解为某公司的7个部门
  • 看官有个大致印象就好,说实在我也没搞懂
具体7层 数据格式 功能与连接方式 典型设备
应用层 Application 数据Data 网络服务与应用间的接口 终端设备(PC、手机、平板等)
表示层 Presentation 数据Data 数据表示、安全、压缩 终端设备(PC、手机、平板等)
会话层 Session 数据Data 会话层连接到传输层的映射;会话连接的流量控制;数据传输;会话连接恢复与释放;会话连接管理、差错控制 终端设备(PC、手机、平板等)
传输层 Transport 数据段Segment 用一个寻址机制来标识一个特定的应用程序(端口号) 终端设备(PC、手机、平板等)
网络层 Network 数据包Packet 基于网络层地址(IP地址)进行不同网络系统间的路径选择 路由器
数据链路层 Data Link 数据帧Frame 在物理层上建立、撤销、标识逻辑链接和链路复用 以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址 网桥、交换机、中继器
物理层 Physical bit(位)流 建立、维护和取消物理连接 光纤、同轴电缆、双绞线、网卡

TCP/UDP 同属一上面的传输层

  • 每个部门都有每个部门的工作指南或要求,这俩协议就是让传输层去实现它的功能
  • TCP (Transmission Control Protocol)传输控制协议
    • TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换
  • 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段

  • 之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体[1] 的TCP层

  • TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK)(acknowledge);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传

  • TCP是因特网中的传输层协议,使用三次握手协议建立连接:如图

OSI/TCP/UDP_第2张图片
QQ20160426-0.png
  *终止连接还得多一个步骤,就不列出了。
  • UDP (User Datagram Protocol)用户数据报协议
  • 其实功能和TCP差不多,只不过它不需要像TCP那样需要建立连接
  • UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据
  • UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点
  • 也就是说就像是*某某某政的平邮,把东西寄出去不管对方有木有收到,收到的东西玩不完整
  • 在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点
  • 所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和QQ就是使用的UDP协议

你可能感兴趣的:(OSI/TCP/UDP)