计算机网络之传输层 + 应用层

.1 UDP与TCP

  • IP中的检验和只检验IP数据报的首部, 但UDP的检验和检验 伪首部 + 首部 + 数据
  • TCP的交互单位是数据块, 但仍说TCP是面向字节流的, 因为TCP仅把应用层传下来的数据看成无结构的字节流, 根据当时的网络环境组装成大小不一的报文段.
  • 10秒内有1秒用于发送端发送数据, 信道利用率就是10%
  • TCP报文段由首部和数据部分组成, 紧急位URG的作用就是将紧急指针所指示的数据放到数据部分的最前面

2.1 DNS系统

  • 域名由点和标号(label)组成, 点分割的即是标号
  • 每个标号不超过63个字符,总计不超过255个字符, 并且不区分大小写
  • 顶级域名TLD(Top Level Domain)分为三类, 国家顶级域名nTLD, 通用顶级域名gTLD, 基础结构域名ID(Infrastructure Domain). 基础结构域名只有一个即 arpa. 用于反向域名解析, 因此被称为反向域名
  • 2011年开始, 顶级域名TLD新增了一类新通用顶级域名(New gTLD)
  • 域名服务器管辖范围(或有权限的)以区 (zone) 为单位, 而非域(domain)。各单位根据具体情况来划分自己管辖范围的区, 但在一个区中的所有节点必须是能够连通的。管辖一个区的服务器就是权限域名服务器 , 后有详细叙述
    实际上也很好理解, 例如对于一个com顶级域名, 其下辖的二级域名可能以亿单位, 这时我们当然不可能用一台com顶级域名服务器就全部管辖. 区≤域
  • 域名服务器可以划分为四种类型: 根/顶级/权限/本地域名服务器.
    其中根域名服务器知道所有顶级域名服务器的域名和ip, 即根域名服务器可以解析所有com/org等顶级域名.
    根域名服务器一共有13台(A~M), 每台又由许多物理节点组成, 这些物理节点会分布在世界各地.
    每台根域名服务器的IP地址和域名都是不同的, 但同一台内的所有物理节点的IP地址都是相同的, 因此采用了任播(anycast)技术后, 会自动寻找IP地址相同, 但距离最近的物理节点.
  • 每台域名服务器都会有一些分布式备份, 其中只能在主域名服务器中进行数据更改, 辅助域名服务器是备份.
  • 每台域名服务器都启用了高速缓存
  • 主机中也启用了高速缓存, 例如在开机后自动从本地域名服务器下载全部数据

.2 HTTP协议

  • n个文档的传输时间为 : n X (2RTT + 文本传输时间), 因此HTTP1.1 版本后使用了持续连接(Persistent Connection). 持续连接又分为非流水线方式(Without Pipelining)和流水线方式(With Pipelining).
  • 非流水方式指的是, 客户端必须要收到上一个请求的响应后, 才能发出下一个请求.
    相比非持续连接, n个文档传输能省去 n-1 个建立TCP连接的RTT.
    n个文档的传输时间为 : (RTT +nRTT + n X 文本传输时间),
  • 流水方式中, 由于没有限制请求必须在响应之后发送, 因此文档传输的时间不定.最好的情况下, 客户端一次性发送完所有请求, 传输时间为2RTT+ n X 文本传输时间
  • HTTP1.1 版本的一个缺点是, 即使客户端可以一次性发送多个请求, 但服务器只能按照请求的顺序逐一回复, 如果某一请求耗时特别长, 就会阻塞后面的请求
    HTTP2 版本中, 服务器可以并行发回所有响应, 而不必按序.
  • HTTP2 版本中, 把所有报文划分为二进制编码的帧

.3 文件传送协议

基于TCP的文件传输协议FTP(File Transfer Protocol)和基于UDP的简单文件传输协议TFTP(Trivial)共同的特点是: 任何操作都要先获得一个本地副本文件, 任何修改都要先在副本文件上进行.

举个例子, A想要在B的某个文件最后新增一个字母, 则必须先要将文件传输到A, A完成修改后再回传覆盖.

.3.1 TFTP

TFTP主要有以下特点:

  • 传输数据块大小为512字节。
  • 只支持读取和写入两种操作。
  • 没有用户身份验证、加密和完整性校验功能。
  • 使用UDP作为传输层协议,不保证可靠性
  • 默认使用69号端口。

TFTP的工作过程很像停止等待协议,发送完一个文件块后就等待对方的确认,确认时应指明所确认的块号。

发送完数据后在规定时间内收不到确认就要重发数据PDU,发送确认PDU的一方在规定时间内收不到下一个文件块,也要重发确认PDU。这样保证文件的传送不致因某一个数据报的丢失而告失败。

.4 P2P

  • 在BT中, 使用"最稀有的优先(rarest first)" 技术优先请求最稀有的文件块, 避免之后收集不到
  • 在BT中, 还运用了对等传输的思想. 如果A以最高速率向B发送文件, B 也会将A的优先级设为最高.
相关推荐
小堃学编程1 小时前
计算机网络(十) —— IP协议详解,理解运营商和全球网络
网络·tcp/ip·计算机网络
ZachOn1y5 小时前
计算机网络:计算机网络概述 —— 初识计算机网络
网络·计算机网络·知识点汇总·考研必备
qq_421833678 小时前
计算机网络——ftp
计算机网络
ZachOn1y9 小时前
计算机网络:物理层 —— 物理层下的传输媒体
计算机网络·传输媒体·知识点汇总
陈逸轩*^_^*12 小时前
Java 网络编程基础
java·网络·计算机网络
CXDNW15 小时前
【网络篇】计算机网络——应用层详述(笔记)
服务器·笔记·计算机网络·http·web·cdn·dns
BeyondESH16 小时前
计算机网络—大端序和小端序
计算机网络
叫我龙翔1 天前
【Linux】进程间关系与守护进程
linux·运维·服务器·计算机网络
ZachOn1y1 天前
计算机网络:计算机网络概述 —— 描述计算机网络的参数
网络·tcp/ip·计算机网络·考研必备
qq_421833671 天前
计算机网络——应用层
笔记·计算机网络