网络编程(OSI七层模型和TCP/IP四层模型)

网络模型 OSI七层模型和TCP/IP四层模型

OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.

TCP/IP四层的体系结构:应用层,运输层,网际层和网络接口层.

五层体系结构:应用层,运输层,网络层,数据链路层和物理层.

五层协议时OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构.为了方便可以把下两层称为网络接口层.

各层的应用:

1.物理层:

主要定义物理设备标准,如网线的接口类型,光纤的接口类型,各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1,0转化为电流强弱来进行传输,到达目的地后在转换为1,0,也就是我们常说的数模转换与模数转换).这一层的数据叫做比特.

2.数据链路层:

定义了如何让格式化数据进行传输和,以及如何让控制对物理介质的访问.这一层通常还是提供错误检测和纠正,以确保数据的可靠传输.

3.网络层:

在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择,Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层.

4.运输层:

定义了一些传输数据的协议和端口号(www端口80等),如:

TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)

UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的).主要是将从下层接受的数据进行分段和传输,到达目的地址后再进行重组.常常把这一层数据叫做段.

5.会话层:

通过运输层(端口号:传输端口与接受端口)建立数据传输的通路.主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)

6.表示层:

可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取.例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCLL)来表示相同的字符.如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换.

7.应用层:

是最靠近用户的OSI层.这一层为用户的应用程序(例如电子邮件,文件传授和终端仿真)提供网络服务.

网络通信基本要素有哪些

1.至少有两个具有独立操作系统的计算机,且它们之间有相互共享某种资源的需求.

2.两个独立的计算机之间必须用某种通信手段将其连接.

3.网络中各个独立的计算机之间要能相互通信,必须制定相互可确认的规范标准或协议.

端口号的作用是什么

标识正在计算机上运行的进程(程序)

TCP,UDP通信协议的区别

TCP:传输控制协议TCP(Transmission Control Protocol)

面向连接:通信之前,要先建立连接聊天

安全可靠,传输数据大,效率低

UDP:用户数据报协议UDP(User Datagram Protocol)

无连接 发射导弹 具体的位置输入到导弹

不安全,传输速度快,基于IP+端口.

解释TCP三次握手,四次挥手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号.

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个syn包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态.

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手.

四次挥手:

(1)客户端进程发出连接释放报文,并且停止发送数据.释放数据报文首都,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号+1),此时,客户端FIN-WAIT-1(终生等待1)状态.TCP规定,FIN报文段即使不携带数据,也要消耗一个序号.

(2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务器端就进入了CLOSE-WAIT(关闭等待)状态.TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送,但是服务器若发送数据,客户端依然要接受.这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间.

(3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据).

(4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。 (5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。 (6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

(1)客户端发送一个FIN段,并包含一个希望接受者看到的自己当前的序列号K.同时还包含一个ACK表示确认对方最近一次发过来的数据..

(2)服务端将K值加1作为ACK序号值,表明收到了上一个包.这时上层的应用程序会被告知另一端发起关闭操作,通常这将引起应用程序发起自己的关闭操作.

(3)服务器端发送自己得FIN段,ACK=K+1,Seq=L

(4)客户端确认.ACK=L+1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值