国家标准化组织ISO指定的一个计算机互联的标准。open system interconnection。
七层:安全
1.应用层:网络服务与最终用户的一个接口。协议有:http,ftp,tftp,smtp,dns,telnets,dhcp网络
2.表示层:数据的表示,安全和压缩。在五层网络模型中已经被合并到应用层。例如jpeg,ascii等。tcp
3.会话层:创建,管理,终止会话,在五层模型里面已经合并到了应用层。
以上三个统一为应用层。3d
4.传输层:定义传输协议的协议端口号,以及流控和差错校验。协议有:tcp,udp,数据包一旦离开网卡即进入网络传输层。指针
5.网络层:进行逻辑地址的寻址,实现不一样的网络之间的路径选择。协议有icmp,igmp,arp,rarp。code
6.数据链路层:创建逻辑连接,进行硬件地址的寻址,差错校验等功能。将比特组合成字节而后组合成帧,用mac地址访问介质,错误发现可是不能纠正。server
7.物理层:创建,维护,断开物理连接。tcp/ip层级模型结构,应用层之间的协议经过逐级调用传输层,网络链路层和物理数据链路层,而能够实现应用层之间的应用程序通信互联。blog
应用层须要关心应用程序的逻辑细节,而不是数据在网络中的传输活动。应用层其下三层则处理真正的通讯细节。在整个internet的整个发展过程当中全部的思想和重点都以一种rfc(request for comments)的文档格式存在,针对每一种特定的tcp/ip应用,都有相应的rfc文档。
一些典型的tcp/ip应用有ftp,telnet,smtp等,rfc使一些基本相同的tcp/ip 协议应用程序实现了标准化,从而使得不一样的厂家开发的应用程序能够互相连通。
-------------
tcp/ip是一个协议簇,由许多的协议组成,而http属于tcp/ip协议簇。
应用层包含应用层,表示层,会话层。传输层同等与传输层。网络层同等与网络层。数据链路层和物理层数据链路层。dns
osi七层网络模型 | tcp/ip四层网络模型 | 对应的协议 | 描述 |
---|---|---|---|
1应用层Application | 1应用层 | HTTP、TFTP, FTP, NFS, WAIS、SMTP | |
2表示层Presentation | 1 | Telnet, Rlogin, SNMP, Gopher | |
3会话层Session | 1 | SMTP, DNS | |
4传输层Transport | 4传输层 | tcp,udp,sctp,rtp | |
5网络层Network | 5网络层 | IP(网际协议)、ARP(地址解析协议)、RARP(逆地址解析协议) | |
6数据链路层Data Link | 6数据链路层 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP | |
7物理层Physical | 6 | IEEE 802.1A, IEEE 802.2到IEEE 802.11 |
利用tcp/ip协议族进行网络通信时,会经过分层顺序与对方进行通讯。发送端从应用层往下走,接受端则往应用层走,咱们以http举例,首先做为发送端的客户端在应用层发出一个想看看某个web页面的请求。接着为了传输方便,在传输层把应用层收到的数据进行分割,并在各个报文上打上标记序号以及端口号后转发给网络层,在网络层ip协议,增长通信目的地的mac地址后转发给数据链路层。
而且发送端在层与层之间传输时,没通过一层都会被打上该层所独有的头部信息,反而接收端在层与层之间一层层的把对应的首部消去。这种把数据包起来的方法叫作封装。
ip协议就是将各类数据包传输给对方,其中最重要的就是知道目标机器的ip地址和mac地址。
ip地址就是指明了节点被分配的地址,mac地址时网卡所属的固定地址。ip地址和mac地址进行配对,ip地址能够变换,可是mac地址基本不会更改。多台计算机通过多台中专设备,中转设备的mac地址来搜索下一个目标的。这时,会采用arp协议,一种地址解析的协议。
根据通讯对方的ip地址就能够反差出对方的mac地址。
tcp位于传输层,提供可可靠的字节流服务。所谓字节流服务就是将大块的数据切割成报文段为单位的数据进行管理。
三次握手中,syn和ack,发送端首先会发送一个带syn标志的数据包给对方。接收端收到后,回传以一个带有syn/ack标志的数据包,表明握手结束。若在握手过程当中莫名中断,tcp会再次以相同的顺序发送相同的数据包。
sequenceDiagram 发送端->>接收端: 标有syn的数据包发给你了 接收端->>发送端: 收到,且发送你标有syn/ack的数据包 发送端->>接收端: 发送标有ack的数据包了
sequenceDiagram client->>server: SYN server->>client: SYN/ACK client->>server: ACK client->>server: HTTP请求 server->>client: HTTP相应 server->>client: FIN client->>server: ACK client->>server: FIN server->>client: ACK
端口号:用来表示发送和接受进程,因为ip层已经把ip数据报分配给tcp或udp(根据IP首部的协议字段值),所以tcp端口由tcp查看,udp端口由udp查看。端口号互相独立。
校验和:udp校验和是一个端到端校验和,她由发送端计算,而后由接收端验证。其目的是为了发现udp首部和数据在发送端到接收端的之间发生的任何改动
tcp报文首部的前20个字节时固定的,后面的字节时根据须要添加的。一个5个四字节段。
第一个4字节
第二个和第三个4字节
第四个4字节
第五个4字节
第一个4字节
第二个四字节
第三个四字节
第五个四字节:目的IP地址