【高性能网络编程】基础知识1 TCP、HTTP

单机并发量

  • 操作系统用 4元组唯一标识1个 TCP 连接:( {localIP} , {localPort} , {remoteIp} , {remotePort} )
  • IP 为 32 位,因此最大数量为 2^32 ;Port 为 16 位,因此最大数量 2^16
  • server 端 bind {localIP} 与 listen {localPort} ,因此数量取决于 {remoteIp} , {remotePort} ,最大数量为 2^32 * 2^16
  • 但实际上并发量还受 硬件资源(cpu、内存等)网络资源(带宽) 的限制。

阻塞、非阻塞;同步、异步

阻塞是指调用方一直在等待而且别的事情什么都不做;
非阻塞是指调用方先去忙别的事情。

  • 阻塞、非阻塞和同步、异步的区别:

    1. 阻塞、非阻塞的讨论对象是调用者;
    2. 同步、异步的讨论对象是被调用者。

OSI 七层网络模型

OSI 模型 五层模型 协议
应用层 应用层 HTTP、FTP、DHCP
表示层 应用层 Telnet
会话层 应用层 DNS
传输层 传输层 TCP、UDP
网络层 网络层 ARP
数据链路层 数据链路层 PPP
物理层 物理层 IEEE 802.11

TCP

TCP 3次握手过程与原因

image

第三次握手是为了 防止失效的连接请求到达服务器,让服务器错误打开连接

TCP 4次挥手过程与原因

image

四次握手是为了 保证服务器传送完还未传送完毕的数据

TCP 4次挥手后客户端 TIME_WAIT 原因

客户端接收到服务器端的 FIN 报文后进入此状态,此时并不是直接进入 CLOSED 状态,还需要等待一个时间计时器设置的时间 2MSL。这么做有两个理由:

  • 尽可能确保第四次挥手的报文成功到达服务器。如果服务器没收到客户端发送来的第四次挥手报文,那么就会重新发送第三次挥手,所以客户端等待一段时间就是为了处理这种情况的发生。

  • 等待一段时间是为了尽可能让本连接内所产生的报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。

UDP 转 TCP 需要确保的条件

可靠传输

  1. 三次握手、四次挥手
  2. 数据确认应答,失败重传
  3. 包丢失、包重复、包损坏、包延时、包乱序

流量控制

  1. 滑动窗口

拥塞控制

  1. 拥塞状态值(报文长度每次*2,拥塞则/2)

Web 页面请求过程

  1. 通过 DHCP动态主机配置协议 获取到 当前主机IPDNS 服务器 IP当前局域网默认网关路由器 IP
  2. 通过 ARP 协议获取 当前局域网默认网关路由器 IP 对应的 MAC 地址
  3. 通过 DNS 服务器 查询目的域名的 IP 。
  4. 与目的 IP 的服务器通过 TCP 3次握手建立连接。
  5. 目的服务器响应页面内容的报文后,浏览器进行渲染。
  6. 连接结束是通过 TCP 4次挥手关闭连接。
  • 注释:
  1. 为什么需要局域网的MAC地址呢? 因为局域网内是通过 MAC 进行识别的,为什么要用 MAC 地址识别呢?是这样的,以前没这么多主机的时候,IP 是固定的,我们就不需要 MAC,但现在主机越来越多,这就导致局域网里 IP 不是十分充足,管理起来也不是很好管理,所以 IP 每隔一段时间就会被回收,需要的时候才会被分配,这也就是为什么前面提到的 DHCP 动态主机配置协议会存在,所以这个 IP 是会变的,对于主机来说,唯一不变的是 MAC,所以,在局域网内部我们是用 MAC 定位的。
  2. 默认网关路由器:每一个主机都在一个局域网里,要访问局域网以外的主机就需要先离开这个局域网

HTTP 报文

--------------------- Request ------------------------------------------
GET http://www.example.com/ HTTP/1.1            // Method URL 协议版本
Accept: text/html                               // Header
                                                // 头部后空一行
param1=1&param2=2                               // Body





--------------------- Response ------------------------------------------
HTTP/1.1 200 OK                                 // 协议版本 状态码 状态描述
Age: 529651                                     // Header
                                                // 头部后空一行 
<!doctype html>                                 // Body
<html>
<head>
    <title>Example Domain</title>
    // 省略... 
</body>
</html>

HTTPS 加密方式

  1. 传输内容使用对称加密
  2. 通过非对称加密方式对秘钥加密。

HTTP 与 HTTPS 对比

HTTP 有以下问题

  1. 使用明文进行通信,内容可能会被窃听。 HTTPS 通过对称加密+非对称加密传输。
  2. 不验证通信方的身份,通信方的身份有可能遭遇伪装。 HTTPS 通过颁发的CA证书来认证通信方。
  3. 无法证明报文的完整性,报文有可能遭篡改。 HTTPS 通过摘要(加签与验签)来确保完整性。

HTTPS 有以下问题

  1. 因为需要进行加密解密等过程,因此速度会更慢;
  2. 需要支付证书授权的高额费用。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容