OSI模型与SOCKET、TCP和HTTP的学习

本文详细介绍了网络通信中的OSI七层模型,重点关注TCP/IP连接的三次握手和四次挥手过程。此外,还探讨了HTTP、TCP和SOCKET的区别,以及HTTP协议的特性和请求响应结构。最后,文章提到了HTTPS协议的重要性,讨论了加密和密钥在保障数据安全中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:深入浅出-网络七层模型 - sunsky303 - 博客园

最全的socket,tcp,http三者之间的区别和原理_500万一根油条的博客-优快云博客_socket通信和tcp通信的区别

Http协议之详解 - 谢呈勖 - 博客园

目录

 一:七层模型

1.物理层

2.数据链路层

3.网络层

4.传输层

5.会话层

6.表示层

7.应用层

二:TCP/IP连接

1.三次握手

2.四次挥手

3.常见面试题

为什么连接是三次握手,结束是四次握手

连接之后,客户机出现故障怎么办

三:HTTP、TCP和SOCKET的区别

socket

TCP/IP连接

HTTP连接

四:Http协议

1.HTTP的特性

2.HTTP的请求

请求行

请求头

请求体

3.HTTP的响应 

响应行

响应头

响应体

五:HTTPS协议

密码学

明文

密文

密钥

对称加密

不对称加密


由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。
在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。

 一:七层模型

1.物理层

  • RJ45等将数据转化成0和1
  • 主要功能:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
  • 网卡,网线,集线器,中继器,调制解调器,线路、无线电、光纤、信鸽
    • 集线器是物理层设备,采用广播的形式来传输信息

2.数据链路层

  • 规定了0和1的分包形式,确定了网络数据包的形式
  • 主要任务:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
  • 网桥,交换机,以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
    • ​​​​​​​交换机就是用来进行报文交换的机器。

3.网络层

  • 此处需要确定计算机的位置,怎么确定?IPv4,IPv6
  • 主要任务:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
  • 路由器
    • 路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。
  • IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25

4.传输层

  • 每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信
  • OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。
  • 主要任务:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
  • 网关工作在第四层传输层及其以上
  • TCP/IP、UDP、RTP、SCTP、SPX、ATP、IL

5.会话层

  • 建立一个连接(自动的手机信息、自动的网络寻址),是用户应用程序和网络之间的接口
  • 主要任务:组织和协调两个会话进程之间的通信,并对数据交换进行管理。
  • ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets,SOCKET

6.表示层

  • 解决不同系统之间的通信,eg:Linux下的QQ和Windows下的QQ可以通信
  • 对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层
  • 主要功能:处理用户信息的表示问题,如编码、数据格式转换和加密解密等
  • XDR、ASN.1、SMB、AFP、NCP

7.应用层

  • 规定数据的传输协议
  • 它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作,该层还负责协调各个应用程序间的工作。
  • HTTP
### OSI模型TCP/IP协议栈的区别、相似点及应用场景 #### 区别 OSI模型是一个理论上的七层架构,而TCP/IP协议栈更注重实际应用,分为四层。OSI模型的层次划分更为细致,包括物理层、数据链路层、网络层、传输层、会话层、表示层应用层[^1]。相比之下,TCP/IP协议栈将多个功能合并到了较少的层次中,其四个主要层次分别为网络接口层、网际层、运输层应用层。 在设计目标上,OSI模型旨在提供一种通用的标准框架来描述任何类型的网络通信系统,因此具有较高的抽象性灵活性;然而,TCP/IP协议栈则专注于实现互联网的实际需求,强调互操作性效率[^4]。 #### 相似点 尽管两者的层数不同,但在核心理念方面存在诸多共通之处。例如,二者均涉及数据封装解封过程,并采用分层方式完成端到端的数据交换任务。具体来说: - **数据封装解封装**:无论是OSI还是TCP/IP,当数据从高层向低层传递时都会经历逐级添加头部信息的过程(即封装),而在接收方则相反地执行去除这些附加部分的动作(即解封装)。 - **层次化通信**:每一层只其相邻上下层直接交互,从而简化复杂度并增强可维护性。 - **端到端通信支持**:确保源节点发出的信息能够准确无误地抵达目的地址处的应用程序实例那里。 另外值得注意的是,在某些特定情况下,两个体系之间还存在着一定的映射关系。比如TCP/IP里的Internet Layer大致相当于OSI中的Network Level;Transport Layers两者间也有着很强的一致性等等。 #### 应用场景 由于各自特点的不同决定了它们适合应用于不同的场合之中: 对于那些需要严格遵循国际标准化组织所制定规则的企业内部局域环境或者特殊行业领域里(如医疗设备互联),往往倾向于选用基于完整版OSI参考模式构建起来的技术解决方案因为这样可以获得更好的兼容保障同时也便于后期扩展升级等工作开展. 而对于广域范围内的公共因特网上,则普遍采用了更加简洁高效的TCP/IP作为基础构架形式因为它不仅满足了基本通讯要求而且还特别考虑到了跨平台协作等方面的因素使得全球范围内数以亿计台不同类型机器之间都能够轻松建立起稳定可靠的联机通道[^2][^3]. ```python # 示例代码展示如何利用socket库创建简单的客户端服务端连接 import socket def create_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = 9999 try: server_socket.bind((host, port)) server_socket.listen(5) while True: client_socket, addr = server_socket.accept() message = client_socket.recv(1024).decode('utf-8') print(f"Received from {addr}: {message}") response = f"ECHO: {message}" client_socket.send(response.encode('utf-8')) client_socket.close() except Exception as e: print(e) if __name__ == "__main__": create_server() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值