复习总结(8)计算机网络(2)运输层

3.1:概述和运输层服务

 

为不同主机的应用进程之间提供了逻辑通信(logic communication)功能
将发送自应用进程的报文转换成运输层分组,术语为报文段(segment
有两种协议,TCPUDP

 

运输层和网络层的关系:运输层为不同主机的进程提供逻辑通信,而网络层提供了主机之间的逻辑通信。

 

多路复用(multiplexing)与多路分解(demultiplexing

将运输层报文段总的数据交付到正确的套接字的工作称为多路分解(demultiplexing)。

从源主机的不同套接字中收集数据块并为每个数据块封装上首部信息从而生成报文段并传递到网络层称为多路复用

多路复用的要求:

套接字有唯一标识符

每个报文段有特殊字段来指示该报文段说要交付的套接字

特殊字段是源端口号字段(source port number field)和目的端口字段(destination port number field

范围是0~65535

0·1023范围的称为周知端口号(well-known port number),保留给HTTPFTP等应用层协议的

 

无连接传输:UDP

有很多应用更适合用UDP:

应用层能更好地控制要发送的数据和发送时间

无需连接建立

无连接状态

分组首部开销小

UDP校验和

对报文段中的所有16比特字的和进行反码运算,求和时遇到的任何溢出都被回卷

得到的结果放在UDP报文中的检验和字段

接收方将所有的相加(包括检验和),如果结果是1111111111111111,则无差错

提供差错检测但是不能进行差错恢复。

 

可靠数据传输的原理

实现这种服务抽象是可靠数据传输协议(reliable data transfer protocol)的责任

TCP是在不可靠的端到端网络层协议(IP)上实现的。

 

3.4.3回退N步(重点!!!TCP的滑动窗口)

回退N步协议(Go-Back-N,GBN)允许发送发发送多个分组而不需要等待确认,但是也受限于在流水线中未确认的分组数不能超过某个最大允许数N

GBN协议常被称为滑动窗口协议(sliding-window protocol

GBN发送方必须响应以下三种类型的事件:

上层的调用:rdt_send()

收到ACK:对序号为n的分组的确认采取累积确认的方式

超时事件

接收方如果序号为n的正确接收,则发送ACK,其它所有情况都丢弃该分组

这种方式称为基于事件的编程(event-based programming

 

TCP报文段结构
包括源端口号和目的端口号,校验和字段(checksum field

 

TCP拥塞控制

1加性增,乘性减

2慢启动:一开始很慢的速率发送但是以指数速度增加发送速率

3对超时事件作出反应

 

TCP的三次握手四次分手(超级重点)

 

(图来自互联网,原出处不详)

 

复习总结(5)计算机网络(1)应用层

2.1应用层协议原理

应用程序体系结构:两种主流结构:
客户机/服务器体系结构(client-server architecture)
P2P体系结构(P2P architecture)

进程通讯:
进程与计算机网络之间的接口:套接字(socket)

四个方面对应用程序服务要求进程分类:
可靠数据传输(reliable data transfer)
吞吐量。
定时
安全性

因特网提供的运输服务:
TCP服务:面向连接服务、可靠数据传输服务
UDP服务:轻量级传输层协议。无连接,不能保证被接收到,可以乱序到达,没有拥塞控制机制
不提供的服务:不能提供任何有关定时或带宽的保证
进程寻址:用IP地址标识主机,端口号用于标识进程

应用层协议(application-layer Protocol)定义了:
交换的报文类型,如请求报文和响应报文
报文类型的语法
字段的语义
进程何时发送报文以及响应的规则

Web应用和HTTP协议(HyperText Transfer Protocol)

2.2.2:非持久连接(non-persistent connection)和持久连接(persistent connection)

HTTP报文格式:

http请求报文

 

http响应报文

 

用户与服务器的交互:cookie

 

FTP(File Transfer Protocol):

 

因特网的目录服务

主机的识别方法是它的主机名hostname、IP地址

DNS提供的服务
需要一种能进行主机名到IP地址转换的目录服务,就是域名系统(Domain Name System)
DNS是:
(1)一个由分布的DNS服务器实现的分布式数据库
(2)一个允许主机查询分布式数据库的应用层协议
DNS运行在UDP上,使用53端口

提供一些重要的服务:
主机别名(host aliasing)
邮件服务器别名(mail server aliasing)
负载分配(load distribution)

 

DNS查询

利用了递归查询(recursive)和迭代查询(iterative query)

Type = A时,Value是主机名的IP地址
Type=NS时,Name是域,Value是知道如何获得该域中的IP地址的权威DNS服务器的主机名
Type = CNAME,Value是主机对应的规范主机名
Type = MX,Value是邮件服务器的规范主机名