zoukankan      html  css  js  c++  java
  • 运输层多路复用与多路分解

    一--- 导读

    我们现在来看这样一个案例,张三家很有钱,川普是张三家的老管家。张三有两个儿子,大三和二三,一个女儿,姗姗。李四也是富豪,李四的管家叫巴马,李四也有两个儿子一个女儿。大李,二李,和莉莉。

    现在两家因为是亲戚,所以子女间会有书信往来,大三,二三,莉莉写完信以后,交给管家川普去封装,写上张三家的地址还有各自所在的房间门牌号。于是把信交给邮递员。另一边,邮递员到达李四家以后,李四 的管家 巴马开始收信,然后检查信上的目的房间,如果是大李的就送到大李那里去,是莉莉的就送到莉莉那里。邮递员相当于网络层,两个管家相当于运输层。门相当于套接字。门牌号就是端口号,川普收信的过程相当于多路复用,而巴马分发信的过程相当于多路分解。儿子女儿就相当于应用层的进程。

    二---多路复用与多路分解的种类 

      正如我们所猜测的那样,多路复用与多路分解分为有连接的和无连接的,因为运输层协议分为可靠的 ,面向连接的TCP协议和不可靠不面向连接的UDP协议,这里想象成两个管家,一个靠谱一个不靠谱即可

    A:无连接的多路复用与多路分解技术

    进程(少爷或小姐)需要发送UDP数据报时,首先要创建一个UDP套接字(少爷或小姐的门),然后应用层通过这个UDP套接字将数据传递到运输层(管家),运输层为数据加上源端口号(房间门牌号)以及目的端口号,封装成数据报后交给网络层(邮递员),网络层再为数据报封装上源IP(张三家地址)以及目的IP(李四家地址)。由于UDP协议仅仅只是将数据发出,所以对于UDP报文来说,最重要的就是目的地址的所在。一个UDP套接字的标识就是目的IP+目的端口号(张三家地址,莉莉的房间门牌号)。因此对于多个不同的UDP数据报,只要它们的目的IP+端口号相同,就算源地址不同,也会在目的主机中被定向到同一个UDP套接字中,被同一个进程所接收。目的IP决定了数据报将要发送到哪台主机,而目的端口号为运输层的的分解提供了标识。

    B:有连接的多路复用与多路分解技术

    既然有无连接的实现,自然就有连接的实现。运输层乃至整个计算机网络最著名的协议——TCP协议,就是一个面向连接的协议。TCP是一个面向连接,可靠的运输层协议。既然面向连接,那它就需要关注两个方面:源地址和目的地址,因为TCP的传输,需要两边协作完成。正因为TCP的特性,导致TCP的套接字和UDP也有所区别。TCP套接字的标识是一个四元组,即源IP+源端口+目的IP+目的端口UDP是目的IP+目的端口)

    三--实例演示

    当我们在浏览器中请求一个页面时,将经历以下过程:

    1. Web服务器监听80端口,等待客户端的连接;(也叫做欢迎套接字)
    2. 用户在浏览器输入一个URL,回车后,浏览器进程创建一个套接字,此套接字由服务器IP,服务器80端口,本地IP,本地进程端口,四部分标识;
    3. 浏览器进程将数据通过此套接字从应用层传入运输层,运输层为TCP报文加上首部(包括源端口和目的端口)后,交给网络层,网络层为其加上网络层首部(包括源IP和目的IP)传输传输到Web服务器;
    4. Web服务器接收到此数据报后,检测到数据报请求的是端口80,于是检测80端口正在运行,且允许连接,则创建一个新的套接字(把门打开),此套接字由服务器IP,服务器80端口,源IP,源端口,这四部分标识;
    5. 此后到达的Web服务器的数据报,若以上四部分完全相等,则将进入此套接字中;
  • 相关阅读:
    动态规划——Best Time to Buy and Sell Stock IV
    动态规划——Split Array Largest Sum
    动态规划——Burst Ballons
    动态规划——Best Time to Buy and Sell Stock III
    动态规划——Edit Distance
    动态规划——Longest Valid Parentheses
    动态规划——Valid Permutations for DI Sequence
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之法阅读笔记03
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14220067.html
Copyright © 2011-2022 走看看