1.FTP协议要用到两个TCP连接,即它的命令链路和数据传输链路是分开的。
2.远程登录使用的协议是telnet协议。
3.运行在一台主机上的一个进程,使用目的主机的IP地址和目标进程中套接字的端口号来标识运行在另一台主机上的进程。
4.UDP相较于TCP而言更简单、快速,但是提供的是不可靠的服务。
5.以下是 HTTP 请求/响应的步骤:
\1. 客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
\2. 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
\3. 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
\4. 释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
\5. 客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
(1)浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
(2)解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
(3)浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
(4)服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
(5)释放 TCP连接;
(6)浏览器将该 html 文本并显示内容。
6.两个不同的Web页面可以通过同一个持续连接发送。
7.一个TCP报文段不可能携带两个不同的HTTP服务请求报文。
8.HTTP响应头中的Date表示的是消息发送的时间,不是最后一次修改的时间。
9.HTTP响应报文可以具有空的报文体。
10.HTTP不提供加密服务,加密服务由SSL提供。HTTPS网站就是跑在经过了SSL加密的TCP协议上。
11.从某个服务器上UDP端口发出去的UDP数据报不可能发向不同的主机。
12.TCP是公平的的协议,但当两个TCP连接共享一个瓶颈链路时,它们在这条瓶颈链路上获得的带宽并不自始至终是一样的。此处参考郑烇老师的喝酒模型,每次超出N后窗口值减小为原本的二分之一,一定会导致带宽大的减小,带宽小的增大,从而慢慢实现公平的目的。