计算机网络学习笔记(6)

3.1 传输层协议 Transport-layer services

传输层服务和协议

传输层负责再不同主机上的进程进行逻辑通信。简单来说就是主机之间可以直接发送报文,而无需考虑物理设施的搭建。

传输协议行为

发送端:将报文转换成传输层分组(segment),也就是把完整的报文分成小块,并传送给网络层

接收层:网络层提取分组,并将其上传给传输层,再由传输层将其还原为报文

在进行传输时,TCP和UDP两种协议能够发挥作用

传输层和网络层的关系

下面用一个例子解释网络层和传输层的关系

假设我们拥有:

1. 分隔两地的多个家庭

2. 两个地区之间使用邮件交流

3. 两个地方分别有一名家庭成员负责向本地的家庭收取信件,将打包好的信件传给邮递员,并再接收信件以后分发给本地的这些家庭

那么,类比到网络服务,邮递员为两地的家庭之间提供逻辑通讯,两地的收发信件负责人给本地的其他成员提供逻辑通讯(他们两个人就是其他人眼里的邮递员)

于是,得到以下类比:

报文:信的内容

进程process:写信的人

主机 host:家庭

运输层协议:两个负责人

网络层协议:邮政服务(包括邮车)

也就是说,传输层协议负责于进程通讯,网络层协议负责主机间通讯

继续这个类比,负责人和邮递员可以更换,这也就是协议为什么可以进行更替

因特网传输层概述

细化双端行为

继续深化发送端和接收端的行为概览

发送端:

发送报文,决定发送报文的头部域名,建立报文段并且向目标IP地址发送报文

接收端:
从IP获取报文

检查头部域名值

提炼应用层信息

通过socket多路分解消息

TCP和UDP特性简述

TCP

提供可靠数据传输,通过使用流量控制,序号,确认和定时器确保正确并且按序地交付进程

此外,TCP还提供阻塞控制,保证链接平等地共享带宽

UDP

提供不可靠,无连接的服务。不能调节流量,进程可以以任意流量传输消息。因此,不提供可靠和带宽的控制

3.2 多路复用和分解Multiplexing and demultiplexing

以下将在因特网环境下讨论多路复用和多路分解问题(这是所有网络都应用的技术,只是为了方便理解)

 上图体现了多路复用的一个典型应用场景。假如用户正在下载Web页面,同时还运行着个FTP会话和2个telnet会话,这样就有四个进程正在运行。当运输层向网络层接收数据之后,它需要定向传输给上述四个进程中的一个

实际上,传输层并不会直接将数据交给进程,而是交给一个中间套接字。套接字的格式决定他们根据TCP还是UDP协议传输

在接收端,每个运输层报文段都会具有几个字段。运输层检查这些字段,标识接收套接字,并将报文段定向到套接字。这种交付到正确套接字的过程就是多路分解

对应的,从不同套接字收集数据段块,加装首部信息,生成报文段传递到网络层的过程就是多路复用

多路分解的工作方式

根据前文,可以知道多路复用需要的要求:

1. 套接字有唯一标识符

2. 每个报文段具有特殊字段指示要交付的套接字

 上图展示了端口字段的基本格式。这些字段有:源端口号字段,目的端口号字段,其他首部字段以及报文。

端口号16位,大小在0-1024之间称为周知端口号,指的是他们保留给HTTP和FTP之类的周知应用层使用

无连接的多路复用&多路分解

使用如下代码创建套接字:

clientSocket = socket(AF_INET,SOCK_DGRAM)

这样创建套接字时,系统自动为套接字分配端口号。另一种方法为在创建套接字之后增加bind代码,使得套接字关联特定的端口号

clientSocket.bind('',19157)

 如果服务器使用周知协议,那么就必须分配一个周知端口号。通常应用程序的客户端让运输层自动分配端口号,而服务器端则配备特定的端口号

下面用一个例子体现端口号在多路复用中的使用:

1. 主机A中一个进程具有端口19157 要发送给具有端口46428的B主机

2. A创建具有源端口号19157 目的端口号46428的报文段,之后由网络层封装在一个IP数据报中传送给B

3. 接收主机运输层协议检查目的端口号,并将其发送给响应套接字

对于源端口号来说,如果B主机上的端口要对A回复时,则使用A的源端口号作为其目的端口号

面向连接的多路复用&多路分解

TCP套接字与UDP不用,它是一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)

因此,当报文段到达主机之后,主机使用全部4个值进行定向分解。两个具有不同IP地址/端口号的报文将会被分配到不同套接字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值