zoukankan      html  css  js  c++  java
  • 计算机网络(6)-----运输层概述和UDP协议

    运输层(Transport Layer)

    定义

      运输层负责端到端的通信,既是七层模型中负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的最高三层之间的中间层。运输层位于网络层之上、会话层之下,它利用网络层子系统提供给它的服务去开发本层的功能,并实现本层对会话层的服务。

    应用进程通信

      从IP层来说,通信的两端是两个主机,IP数据包的首部明确地标志了这两个主机的IP地址,但是真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程在交换数据,所以两个主机进行通信就是两个主机中的应用进程相互通信。

    分发和复用

      假定一个机构的所有部门向外单位发出的公文都是由收发室负责寄出,这相当于各部门都“复用”这个收发室。当收发室收到从外单位寄来的公文时,则要完成“分用”功能,即按照信封上写明的本机构的部门地址把公文正确进行交付。运输层的分发和复用功能也是类似的。应用层所有的应用进程都可以通过运输进程再送到IP层,这就是复用。运输层从IP层收到数据后必须交付指明的应用进程,这就是分用。

    端口

      我们需要有具体的进程进行标志,否则我们并不能找到确定的进程。所以就提出了协议端口号(protocol port number),简称端口

      

    端到端通信

      在TCP/IP中,使用一个16位端口号来表示一个端口,为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。所以两个主机之间的通信,最后成了端到端的通信。

    用户数据报协议UDP(User Datagram Protocol)

    作用

      它只是做了运输层协议能够做的最少工作,除了多路复用和多路分解及一些差错检测外,它几乎没有做任何东西。如果应用程序使用的运输层协议是UDP,则应用程序几乎是直接与IP打交道的。

    特点

      (1)UDP是无连接的,即发送数据之前不需要建立连接。

      (2)UDP尽最大努力交付,不保证可靠交付。

      (3)UDP是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后,就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界

      (4)UDP没有阻塞控制

      (5)UDP支持一对一,一对多,多对一和多对多的交互通信。

      (6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

    UDP首部

        

      UDP首部共有8个字节,由以下四个字段组成,每个字段占2字节

      (1)源端口,本机(客户端)的应用程序的套接字所对应的端口号,服务器端可利用此端口号向客户端发送数据。

      (2)目的端口,服务端上的应用进程的套接字所对应的端口号,例如HTTP服务器的80端口。

      (3)长度,首部和数据部分的UDP报文段的总长度,单位为字节,即首部+数据。

      (4)检验和,提供了差错检测功能,即检验和用于确定当UDP报文段从源到达目的时,其中的比特是否发生了改变。

  • 相关阅读:
    Java实现单链表的各种操作
    LintCode #452 删除链表中的元素
    前两天做项目遇到了sqlserver最大连接数 Max Pool Size 的问题
    Redis的应用场景
    说一说MVC的Authentication过滤(四)
    MVC中的下载文件及上传
    Python之高级特性
    说一说MVC的MenuCard(五)
    说一说MVC的CSRF(三)
    说一说MVC的控制器(二)
  • 原文地址:https://www.cnblogs.com/a294098789/p/5649395.html
Copyright © 2011-2022 走看看