网络编程(一)之网络七层协议(OSI)
网络七层协议(OSI)基础知识
协议总览图:
网络中的计算机与终端要想正确地传递信息和数据,必须在数据传输地顺序、数据的格式及内容等方面有一个约定的或规则,这种约定或规则称之为协议。
OSI层 | 功能 | 示例 | 网络设备 |
---|---|---|---|
应用层 | 电子邮件,文件服务,虚拟终端 | TELNET,HTTP,FTP,NFS,SMTP,TFTP,SNMP,DNS,Telnet等 | |
表示层 | 数据格式化,代码转换,数据加密 没有协议 | 加密,ASCII等 | |
会话层 | 解除或建立与别的接点的联系 没有协议 | RPC,SQL等 | |
传输层 | 提供端对端的接口 | TCP,UDP,SPX | 四层交换机、也有工作在四层的路由器 |
网络层 | 为数据包选择路由 | IP,ICMP,RIP,OSPF,BGP,IGMP,IPX等 | 路由器、三层交换机 |
数据链路层 | 传输有地址的帧以及错误检测功能 | ATM,FDDI,SLIP,CSLIP,PPP,ARP,RARP,MTU等 | 网桥、以太网交换机、网卡(物理层和据链路层各一半) |
物理层 | 以二进制数据形式在物理媒体上传输数据 | Rj45,802.3,ISO2110,IEEE802,IEEE802.2等 | 中继器、集线器、双绞线等 |
数据链路层
数据链层图:
OSI参考模型中的第二层,介于物理层和网络层之间,其最基本的服务是将源自网络层来的数据可靠得传输到相邻节点的目的机网络层
在数据链路层中称这种数据块为帧,帧是数据链路层的传送单位,如何控制帧在屋里信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配,以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理.
网络层
网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务
OSI参考模型中的第三层,介于传输层和数据链路层之间
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择,连接的建立、保持和终止等,它提供的服务使传输层不需要了解网络中的数据传输和交换技术。
Socket和HTTP
简单了解OSI之后我们来看一下我们手机与电脑通信,所能够使用的两种数据通信,一种是HTTP请求,一种是Socket通信,HTTP是属于短连接,适合新闻,订票信息等客户端发起请求,每一次请求结束,自动断开连接。而Socket是属于长连接,适合游戏,聊天等实时数据。
TCP/IP协议
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写 了,就是服务器和客户端交互,最终确定断开)
UDP协议
同时Socket可以支持不同的传输层协议(UDP),那我们平时为什么不使用UDP呢,我们现在来看一下UDP与TCP的区别
TCP | UDP | |
---|---|---|
是否面向连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 传输大量数据 | 少量数据 |
传输速度 | 慢 | 快 |
信息链接:
1.网络七层协议
2.网络七层协议、TCP/IP、UDP、HTTP、Socket 个人理解
一、我一直以为Http和Tcp是两种不同的,但是地位对等的协议,虽然知道TCP是传输层,而http是应用层今天学习了下,知道了 http是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。http是用来收发数据,即实际应用上来的。
二、TCP是底层通讯协议,定义的是数据传输和连接方式的规范 HTTP是应用层协议,定义的是传输数据的内容的规范 HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP
三、HTTP支持的是www服务而TCP/IP是协议它是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。