网络工程知识点

了解背景

协议的产生,是为了世界各地的计算机用相同的方式有效的去进行沟通。好比不同国家的人使用英语交流。

模型分层

  • TCP/IP协议的四层划分
  • TCP/IP协议的五层划分
  • OSI七层划分
划分图

物理层:确保原始数据可在物理媒介上传输。
数据链路层:将网络层接收到的数据可靠的传输到相邻节点的目标机网络层。
网络层:实现不同计算机之间数据透明传送;路径选择、路由和逻辑寻址。IP协议非常简单,仅仅提供不可靠无连接的传输。协议:IP协议。设备:路由器。协议:以太网协议。设备:网桥、交换机。
传输层:负责将上层(应用层)数据分段并提供端到端、可靠或不可靠的传输。以及端到端差错控制和流量控制。协议:TCP、TUP。设备:网关。
会话层:负责进程的建立、管理、粽子进程之间的会话。
表示层:对上层信息进行数据转化保证一个计算主机能被另外一个计算主机接受和理解。转化方式:加密、解压、格式转化。
应用层:最靠近用户的OSI层。为用户的应用程序提供协议,将用户的操作转化为服务发,并匹配一个相应的服务协议送给传输层。

IP

用于计算机之间通信;无连接的通信协议;通过IP,将数据割分成不同的包在因特网上传送。IP负责将没有包路由到它的目的地。

IP地址

没个计算机必须有IP地址才能连接因特网,每一个IP包必须有一个地址才能传送到另外一个计算机。IP地址(网络号+主机号)。TCP/IP使用32比特进行编码。计算机一个字节是8比特,所以TCP/IP使用4个字节做地址,一个字节(00000000)可以有256种形式。所以我们的IP地址为0-255。255.255.255.255样式。

TCP/IP

TCP/IP:TCP和IP共同工作。
HTTP(货物)
TCP(货车):负责应用软件之间网络软件之间的通信。
IP(高速公路):负责计算机之间的通信。
过程:TCP把数据分割成并装入IP包,然后在他们到达的时候重新组合它。IP负责把这个包发送到目标计算机。
TCP报文形式

TCP报文

TCP三次握手和四次挥手

三次握手和四次挥手

TCP三次握手

TCP三次握手是指发送三次包才能完成连接,同步连接双方的序列号和确认号并交换TCP窗口大小的信息。
第一次握手:客户端发送SIN(随机数seq=J)给到服务器。客户端进入SYN_SENT
第二次握手:服务器接收SIN=J。发送一个确定收到ACK=J+1和自己的SIN(随机数seq=K)给到客户端。服务器进入SYN_RCVD;
第三次握手:检查ACK是否正确,如果正确发送一个ACK=K+1给到服务器。服务器确认后。两者都进入ESTABLISHED

TCP四次挥手

第一次挥手:客户端发送FIN(随机seq=M)给到服务器,客户端进入FIN_WAIT。
第二次挥手:服务器接受FIN=M,发送一个ACK=M+1给到客户端,服务器进入LOSE_WAIT。
第三次挥手:服务器发送一个自己的FIN(随机seq=N)给到客户端,服务器进入LASR_ACK。
第四次挥手:客户端接收到ACK并确定正确,当自己不需要再接受信息时自己发送一个ACK=N+1给到服务器,进入TIME_WAIT。服务器接收确认,变成CLOSE状态。

为什么建立连接是三次握手,而关闭连接却是四次挥手呢?

这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送

为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

一、保证TCP协议的全双工连接能够可靠关闭
二、保证这次连接的重复数据段从网络中消失
先说第一点,如果Client直接CLOSED了,那么由于IP协议的不可靠性或者是其它网络原因,导致Server没有收到Client最后回复的ACK。那么Server就会在超时之后继续发送FIN,此时由于Client已经CLOSED了,就找不到与重发的FIN对应的连接,最后Server就会收到RST而不是ACK,Server就会以为是连接错误把问题报告给高层。这样的情况虽然不会造成数据丢失,但是却导致TCP协议不符合可靠连接的要求。所以,Client不是直接进入CLOSED,而是要保持TIME_WAIT,当再次收到FIN的时候,能够保证对方收到ACK,最后正确的关闭连接。
再说第二点,如果Client直接CLOSED,然后又再向Server发起一个新连接,我们不能保证这个新连接与刚关闭的连接的端口号是不同的。也就是说有可能新连接和老连接的端口号是相同的。一般来说不会发生什么问题,但是还是有特殊情况出现:假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中,这些延迟数据在建立新连接之后才到达Server,由于新连接和老连接的端口号是一样的,又因为TCP协议判断不同连接的依据是socket pair,于是,TCP协议就认为那个延迟的数据是属于新连接的,这样就和真正的新连接的数据包发生混淆了。所以TCP连接还要在TIME_WAIT状态等待2倍MSL,这样可以保证本次连接的所有数据都从网络中消失。

SYN攻击

在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:

TCP和DUP的区别

  • TCP面向连接(如打电话需要先链接了才能通话);UDP不需要连接就可以发送信息,发数据前不需要建立连接。
  • TCP提供可靠服务,信息无差错、不丢失、无重复、且按序到达;UDP是不可靠传输,不确定信息是否送到。
  • TCP面象字节流,把数据看成无结构的字节流;DUP面象报文,没有做阻塞控制,不会影响源主机的发送频率(在一些应用上显得很重要,如IP电话、实时会议等)
  • TCP首部开销20字节;UDP首部开销8字节,相对来说开销小。
  • TCP是一对一点对点;UDP可以一对多、多对一、一对一。
  • TCP是全双工可靠通道;UDP是不可靠通道。

TCP可靠性

  • 校验和
  • 确认应答与序列号
  • 超时重传
  • 连接管理
  • 流量控制
  • 拥塞控制(慢启动,拥塞避免,快重传,快恢复)
    参考文章

如何针对App弱网情况优化

参考文章

HTTPS和HTTP有什么区别,HTTPS加密过程是什么样的,对称加密和非对称解密各有什么优缺点?

HTTPS是拥有SSL/TLS加密的HTTP网络协议。加密传输、身份认证,是比HTTP安全的网络协议。
作用 提供安全的传输通道;确认网站的真实性。
参考文章

Socket和Http通信原理

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议,主要利用三元组【ip地址,协议,端口】。
HTTP协议即超文本传输协议,是Web联网的基础,也是手机联网常用的协议之一,http协议是建立在TCP协议之上的一种应用。

Socket和HTTP区别

socket连接:socket连接即是所谓的长连接,理论上客户端和服务端一旦建立连接,则不会主动断掉;
Http连接:http连接就是所谓的短连接,及客户端向服务器发送一次请求,服务器端相应后连接即会断掉。

参考文章

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

推荐阅读更多精彩内容