TCPIP的知识梳理(按四层结构体系描述)
TCP/IP协议
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/⽹际协议)是指能够在多个不同⽹络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,⽽是指⼀个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议是严格来说是⼀个四层的体系结构,应⽤层、传输层、⽹络层和数据链路层都包含其中。
OSI参考模型与TCP/IP四层模型对⽐
  ⼀、应⽤层协议
该层存在的协议:HTTP,DNS,FTP,Telnet,SMTP,RIP,NFS
HTTP协议:(后⾯专门⽤⼀篇⽂章详解HTTP和HTTPS)
HTTP (HyperText Transfer Protocol 超⽂本传输协议) 基于 TCP,使⽤端⼝号 80 或 8080。
每当你在浏览器⾥输⼊⼀个⽹址或点击⼀个链接时,浏览器就通过 HTTP 协议将⽹页信息从服务器提取再显⽰出来,这是现在使⽤频率最⼤的应⽤层协议。
这个原理很简单:
点击⼀个链接后,浏览器向服务器发起 TCP 连接;
连接建⽴后浏览器发送 HTTP 请求报⽂,然后服务器回复响应报⽂;
浏览器将收到的响应报⽂内容显⽰在⽹页上;
报⽂收发结束,关闭 TCP 连接。
HTTP 报⽂会被传输层封装为 TCP 报⽂段,然后再被 IP 层封装为 IP 数据报。HTTP 报⽂的结构:
可见报⽂分为 3 部分:
(1)开始⾏:⽤于区分是请求报⽂还是响应报⽂,请求报⽂中开始⾏叫做请求⾏,⽽响应报⽂中,开始⾏叫做状态⾏。在开始⾏的三个
字段之间都⽤空格分开,结尾处 CRLF 表⽰回车和换⾏。
tcpip协议pdf
(2)⾸部⾏:⽤于说明浏览器、服务器或报⽂主体的⼀些信息。
(3)实体主体:请求报⽂中通常不⽤实体主体。
请求报⽂的⽅法字段是对所请求对象进⾏的操作,⽽响应报⽂的状态码是⼀个 3 位数字,分为 5 类 33 种:
1xx 表⽰通知信息,如收到或正在处理。
2xx 表⽰成功接收。
3xx 表⽰重定向。
4xx 表⽰客户的差错,如 404 表⽰⽹页未到。
5xx表⽰服务器的差错,如常见的 502 Bad Gateway。
DNS协议:
DNS协议基于UDP,使⽤端⼝53,由数字组成的IP地址很难记忆,所以我们上⽹使⽤⽹站IP地址的别名--域名,实际使⽤中,域名与IP地址是对应的,
这种对应关系保存在DNS服务器中,在浏览器输⼊⼀个域名后,会有DNS服务器将域名解析为对应的IP地址。
DNS 服务器是个分层次的系统:
(1)根 DNS 服务器:全世界共有 13 台根域名服务器,编号 A 到 M,其中⼤部分位于美国。
(2)顶级(TLD)DNS 服务器:负责如 com 、org 、edu 等顶级域名和所有国家的顶级域名(如 cn 、uk 、jp )。
(3)权威 DNS 服务器:⼤型组织、⼤学、企业的域名解析服务。
(4)本地 DNS 服务器:通常与我们主机最近的 DNS 服务器。
⽽域名解析的过程,有迭代查询和递归查询两种⽅式:迭代查询和递归查询
主机向 DNS 服务器发出的查询叫做DNS 报⽂,⼤致结构:
DNS 缓存和 hosts ⽂件
刚才 DNS 解析查询过程的图中,共发出了 8 份 DNS 报⽂,这是⾮常消耗时间的,所以实际应⽤上使
⽤ DNS 缓存:当⼀个 DNS 服务器接收到⼀个 DNS 回答后,
会将其信息缓存⼀段时间,当再有⼀个对相同域名的查询时,便可直接回复。
通过 DNS 缓存,其实很多查询都只需要本地 DNS 服务器便可完成。
有“FQ”爱好的同学应该知道 hosts ⽂件,其实 hosts ⽂件可以看作是⼀个⼩型的 DNS 服务器。
使⽤命令打开 hosts ⽂件:
sudo gedit /etc/hosts
查看⽂件内容,可以发现⾥⾯全是类似下图中的 IP 和域名对应记录:
在实际上⽹过程中,域名解析的的优先顺序是:先在 DNS 缓存查询,若没有到记录,再查询 hosts ⽂件,若还是没到记录,再向 DNS 服务器发出 DNS 查询报⽂。
FTP协议:
FTP (File Transfer Protocol ⽂件传输协议) 基于 TCP,使⽤端⼝号 20(数据)和 21(控制)。
它的主要功能是减少或消除在不同操作系统下处理⽂件的不兼容性,以达到便捷⾼效的⽂件传输效果。
FTP 只提供⽂件传输的基本服务,它采⽤客户端—服务器的⽅式,⼀个 FTP 服务器可同时为多个客户端提供服务。
在进⾏⽂件传输时,FTP 的客户端和服务器之间会建⽴两个 TCP 连接:21 号端⼝建⽴控制连接,20 号端⼝建⽴数据连接。
FTP 的传输有两种⽅式:ASCII 传输模式和⼆进制数据传输模式。
  ⼆、传输层协议
该层的协议主要是:传输控制协议(TCP)和⽤户数据包协议(UDP)
TCP是⼀个可靠的⾯向连接的协议。
UDP是不可靠的或⾮连接的协议。
⾯向连接和⾮连接的通信⽅式的区别:
  就像打电话和寄明信⽚⼀样。打电话的双⽅在正式通话之前都会说“喂”,确定对⽅在线以后才开始通话,会话结束时都要说“再见”,然后才挂下电话。⽽寄明信⽚却没有这种机制,寄出去了但不管对⽅是否收到。
端⼝号:
  每个应⽤程序都会产⽣⾃⼰的数据流,这些数据流可以把⽬标主机上相应的服务程序看作⾃⼰的⽬的地,对于传输层来说,它只需要知道⽬标主机上的哪个服务程序来响应这应⽤程序,⽽不需要知道这个服务程序具体是⼲什么的。因此,传输层使⽤⼀个抽象的端⼝号来标识这些应⽤程序和服务程序。
端⼝号的功能及应⽤特点:
  端⼝号⽤来跟踪⽹络间同时发⽣的不同会话。TCP和UDP可以同时接收多个应⽤程序送来的数据流,⽤端⼝号来区分他们,然后送给适当的应⽤程序处理。这时多路分解技术的体现,它可以确保正确的⽤户程序收到正确的数据。因此,每个应⽤程序发送数据前都会与操作系统进⾏协商,获得响应的源端⼝号和⽬标端⼝号。
TCP协议段格式
16位的源端⼝号:标⽰该进程⾃⼰
16位⽬的端⼝号:标⽰我要向哪个进程发送数据
32位的序列号/32位确认序列号:为了满⾜全双⼯的安全机制⽽存在的,它有以下四个功能:
a.保证基本的可靠性
  b.是数据可以按序到达
  c.⽀持超时重传
  d.⾼效
4位的⾸部长度:表⽰该TCP头部有多少个32位bit,即就是有多少个4字节,TCP头部最⼤长度15*4=60;
6位的保留位:以备不时之需
6位的标志位:这个就需要详细来说说,因为这个是TCP协议段中最不好记忆的地⽅
URG:紧急指针标志位,紧急指针是否有效
ACK:确认号标志位,确认号是否有效,⼀般只有第⼀个报⽂才会⽆效,在正常通信期间,其必须有效。
PSH:推送标志位,催促接收端把接收缓冲区的数据赶紧处理了
RST:重置标志位,请求重新建⽴连接
SYN:同步标志位,请求建⽴连接
FIN:结束标志位,通知对⽅,我要断开连接了
16位的窗⼝⼤⼩:标⽰我还能接收多少数据,⾥⾯填写的也就是我的接收缓冲区的⼤⼩
16位的检验和:由发送端填充,CRC校验,若接收端校验不通过就说明数据有问题,此处校验和包括TCP整体(TCP⾸部和数据)
16位的紧急指针:标⽰那部分的数据是紧急数据,需要优先处理
40位的选项:这个就有点多了,在这⾥就不做阐述。
UDP协议段格式
16位UDP长度,表⽰整个数据报(UDP⾸部+UDP数据)的最⼤长度
即:⼀个UDP能传输的数据最⼤长度是64K
如果我们要传输的数据⼤于64K,那么我们需要在应⽤层⼿动分包,多次发送,并在接收端⼿动拼装
UDP没有发送缓冲区,应⽤层发送数据,由内核传给⽹络层协议进⾏后续额传输动作。
UDP有接受缓存区,但是接受缓存区不能保证和发送的的数据顺序⼀致,如果接受区缓存满了,再到达的UDP数据被丢弃
不可靠
⽆连接
⾯向数据报
TCP的三次握⼿和四次挥⼿,简单描述,具体见另⼀篇⽂章详细讲。
  三、⽹络层协议
⽹络层的功能:负责相邻计算机之间的通信。其功能包括三⽅⾯:
  ⼀、处理来⾃传输层的分组发送请求,收到请求后,将分组装⼊IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的⽹络接⼝。
  ⼆、处理输⼊数据报:⾸先检查其合法性,然后进⾏寻径——假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
  三、处理路径、流控、拥塞等问题。
⽹络层包括:IP(Internet protocol)协议、ICMP(Internet Control Message Protocol)控制报⽂协议、ARP(Address resolution protocol)地址转换协议、RARP(Reverse arp)反向地址转换协议。
IP是⽹络层的核⼼,通过路由选择将下⼀跳IP封装后交给接⼝层。IP数据报是⽆连接服务。
ICMP是⽹络层的补充,可以回送报⽂。⽤来检测⽹络是否通畅。Ping命令就是发送ICMP的echo包,通过回送的echo relay进⾏⽹络测试。ARP是正向地址解析协议,通过已知的IP,寻对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。⽐如⽆盘⼯作站和DHCP服务。
ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协议提供服务。
ARP协议:将IP地址通过⼴播,⽬标Mac地址是FF-FF-FF…解析⽬标IP地址的Mac地址。(局域⽹中)通过arp -a可以查看Mac地址。
⽹络执法官软件通过动态更改主机Mac地址,实现arp欺骗,使两台主机不能通讯
arp -s ip地址 Mac地址静态绑定Mac地址,可以阻⽌arp欺骗,点本地连接,⽀
持,修复,可以清除静态Mac地址。
  四、物理链路层协议

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。