网络与TCP/IP协议-总结

TCP/IP参考模型

层级               数据形式                      主要功能                                 协议(只标注较主要)

应用层           数据段              文件传输、邮件、文件服务                FTP、HTTP、DNS

传输层           数据包              提供端对端的接口                                  TCP、UDP

网络层           数据帧              为数据包传输提供路由                                 IP

数据链路层   比特流              以二进制形式在物理某体上传输电流           ARP

----------------------------------------------------------------------------------------------------------------------------

HTTP(该协议主要在C/S架构中使用)---超文本传输协议

客户端发起“请求报文”

        URL(Uniform Resource Locator)

        Protocol://HOST:port/path/to/file

       客户端请求分为静态页面和动态

                静态页面由apache/nginx等直接解释即可。

                动态网页,服务器端的存储文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,运行完成之后生产HTML格式的文档,把生产的文档发给客户端。一般使用到php、tomcat等


服务端回应“响应报文”(在服务端接受客户端请求的前提下)

web服务器的主要操作:

1、建立连接--接受或拒绝客户端连接请求;

2、接受请求--通过网络读取HTTP请求报文;

3、处理请求--解析请求报文并做出相应的动作;

4、访问资源--访问请求报文中的相关的资源;

5、构建响应--使用正确的首部生成HTTP相应报文;

6、发送响应--向客户端发送生成的响应报文;

7、记录日志--将已经完成的HTTP事务记录日志文件;


HTTP请求返回的状态代码:

1xx:   纯信息

2xx: “成功"类的信息(200、201、202)

3xx:   重定向类的信息(301、302、304)

4xx:   客户端错误类的信息(404)

5xx:   服务器端错误类的信息(500、502、503)

常见状态代码、状态描述、说明:

200   OK      //客户端请求成功

400   Bad Request  //客户端请求有语法错误,不能被服务器所理解

401    Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403    Forbidden  //服务器收到请求,但是拒绝提供服务

404   Not Found  //请求资源不存在,eg:输入了错误的URL

500    Internal Server Error //服务器发生不可预期的错误

503    Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

--------------------------------------------------------------------------------------------------------------------------

请求报文:

GET / HTTP/1.1

Host:www.mabeyx.com

Connection:keep-alive

--------------------------------------------------------------------------------------------------------------------------

响应报文语法:


--------------------------------------------------------------------------------------------------------------------------

DNS(Domain Name System---域名系统)

域名:www.magedu.com(主机名,FQDN:Full Qualified Domain Name, 完全限定域名)

DNS:名称解析,Name Resolving 名称转换(背后有查询过程,数据库)

            FQDN<-->IP

            www.mabeyx.com.      172.16.0.1

             mail.mabeyx.com.      172.16.0.2

查询方式:

         递归:只发出一次请求

          迭代:发出多次请求

解析:

         正向:FQDN-->IP

         反向:IP-->FQDN

简介:全球共设置13台根域名解析服务器(1主、12从),主要作用为解析.com、.net、.org等一级域名。

--------------------------------------------------------------------------------------------------------------------------

FTP (File Transfer Protocol---文件传输协议):该协议主要在C/S架构中使用

FTP标准命令TCP端口号为21,Port方式数据端口为20.FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制(跨平台传输)。

客户端使用完整URL进行文件获取

        ftp://[用户名:口令@]ftp服务器域名:[端口号]

用户感知为文件的 “上传“ 与 ”下载“。

--------------------------------------------------------------------------------------------------------------------------

TCP与UDP协议:

TCP协议是基于连接的可靠协议,有流量控制和差错控制,也正因为有可靠性的保证和控制手段,所以传输效率比UDP低

UDP协议是基于无连接的不可靠协议,没有控制手段,仅仅是将数据发送给对方,因此效率比TCP要高。

区别如下:

1、TCP是需要基于链接的、UDP是不需要链接的

2、对系统资源的要求(TCP较多,UDP少)

3、TCP需要三次握手架构较复杂、UDP程序架构较简单

4、TCP是流模式与UDP是数据报模式 ;

5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

-----------------------------------------------------------------------------

图中有几个字段需要重点介绍下:

  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

  (3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

  (A)URG:紧急指针(urgent pointer)有效。

  (B)ACK:确认序号有效。

  (C)PSH:接收方应该尽快将这个报文交给应用层。

  (D)RST:重置连接。

  (E)SYN:发起一个新连接。

  (F)FIN:释放一个连接。

三次握手:(建立连接)

1、【Client→Server】 SYN=1 sn=J                                  Client进入SYN_SENT状态

2、【Client←Server】 SYN=1 ACK=1 an=J+1 sn=T    Server进入SYN_RCVD状态

3、【Client→Server】 ACK=1 sn=J+1 an=T+1             lient和Server进入ESTABLISHED状态

四次挥手:(断开链接)

1、【Client→Server】 FIN=J                           Client进入FIN_WAIT_1状态

2、【Client←Server】 ACK=1 ack=J+1         Server进入CLOSE_WAIT状态

3、【Client←Server】 FIN=K                         Server进入LAST_ACK状态

4、【Client→Server】 ACK=1 ack=K+1        Client进入TIME_WAIT状态、Server进入CLOSED状态

TCP报文首部


--------------------------------------------------------------------------------------------------------------------------

IP协议(1、将IP地址写入数据包的IP首部;2、路由)

      IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址,和MAC地址。

      IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。

--------------------------------------------------------------------------------------------------------------------------

ARP协议

A的地址为:   IP:10.1       MAC: AA-AA

B的地址为:   IP:10.2       MAC: BB-BB

       A-10.1要向10.2发送数据时,A会在网内发送广播,谁是10.2,此时有设备对应的IP地址为10.2时,将在网内回应,我是10.2 我的MAC为BB-BB。然后设备AA-AA将向设备BB-BB发送数据。


ARP欺骗(设定B为欺骗者):解决方法为IP与MAC绑定

A的地址为:IP:10.1    MAC: AA-AA

B的地址为:IP:10.2    MAC: BB-BB

C的地址为:IP:10.3    MAC: CC-CC

此时:

1、B告诉A 我是10.3   我的MAC是BB-BB(此信息被更新到A的ARP缓存中)

同时B告诉C 我是10.1 我的MAC是BB-BB(此信息被更新到C的ARP缓存中)

2、A与C通信是。如A向C传输数据包时、目标IP被查询到的设备MAC为BB-BB,即数据包会经过B,再经其转向给C。(C向A传输数据奕如此)

--------------------------------------------------------------------------------------------------------------------------

OSI与TCP/IP模型关联对比


--------------------------------------------------------------------------------------------------------------------------

以太网CSMA/CD机制,让电脑工作在半双工模式下的。即发送数据前需要监听网络,当网络繁忙时,多方一起竞争,会有很大的延迟。

----------------------------------------------------------------------------------------------------------------------------

实例模拟过程:

场景:客户端访问某网站的一个页面

动作:客户端去访问 http://mabeyx.com:8080/wordpress/index.php

假设条件: 1、客户端:IP=X 网站(服务器)IP:192.168.12.235

                     2、网站(服务器)名称:mabeyx.com

                     3、服务端的架构为LNMP

                     4、此次访问是正常、顺利的。

过程:

1、客户端根据自己设定的DNS服务器去正向解析mabeyx.com,返回的非权威应答为192.168.12.235;

          假如客户端无设定DNS服务器且缓存中无mabeyx.com的信息,将从根DNS服务器开始查询。(.com服务器返回的解析结果才是权威应答,其他DNS服务器返回的解析结果都为非权威应答)

2、X→192.168.12.235传输数据,根据IP协议,X会在多条路径中选择一条到达192.168.12.235。形成一张从X→192.168.12.235的路由表。

3、在2过程中会结果无数的设备,根据ARP协议,使用通信的IP地址反查对应的MAC地址,并将数据帧传输给下一MAC。并以此将数据传输至目标服务器上。

4、访问端口为8080,根据TCP协议,进行三次握手。

              1、【Client→Server】 SYN=1 sn=J                                 Client进入SYN_SENT状态

              2、【Client←Server】 SYN=1 ACK=1 an=J+1 sn=T   Server进入SYN_RCVD状态

              3、【Client→Server】 ACK=1 sn=J+1 an=T+1            Client和Server进入ESTABLISHED状态

     4.1、完成三次握手,并建立连接;

     4.2、接受客户端的HTTP请求报文;

     4.3、处理请求,将请求中的index.php内容通过CGI协议,交由PHP解析器进行处理。

     4.4、访问资源,假如此时需要访问数据

                      数据库在本地:PHP使用Socket的方式向MySQL获取数据

                     数据库非本地:PHP使用TCP协议向MySQL获取数据

     4.5、构建响应,将客户端请求的结果生产HTTP报文;

     4.6、发送响应,向客户端发送生成的响应报文;

     4.7、记录日志--将已经完成的HTTP事务记录日志文件。

5、响应的HTTP报文通过客户端使用的浏览器解析成非纯文本的形式展现出来,并保持至缓存中;

6、客户端发起断开链接请求,根据TCP协议,进行四次挥手。

             1、【Client→Server】 FIN=J                           Client进入FIN_WAIT_1状态

             2、【Client←Server】 ACK=1 ack=J+1         Server进入CLOSE_WAIT状态

             3、【Client←Server】 FIN=K                         Server进入LAST_ACK状态

             4、【Client→Server】 ACK=1 ack=K+1        Client进入TIME_WAIT状态、Server进入CLOSED状态

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

推荐阅读更多精彩内容