网络模型、网络连接

网络模型

OSI模型:

百度百科-OSI模型

开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。

通常说的七层网络模型就是指OSI模型,OSI模型是国际标准化组织定义的,是为了整个网络环境定义的模型,而其他所谓的五层、四层网络模型则是简化后的非官方模型。
网络模型
从上到下以此为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。从应用层到物理层,每一层模型依赖下层模型,最终完成数据的传输和解析。
数据流程过程

应用层

应用层(Application Layer)提供软件之间通信的接口。为应用软件提供服务,也向表示层发出请求。服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE。
应用层传递的数据单元是APDU

常用协议:
DNS、HTTP、HTTPS、FTP、SSH、SMTP、POP3等

表示层

表达层(Presentation Layer),管理数据的表示方式,定义数据格式及加密、压缩。使得不同类型的计算机或不同方式的表示数值能够跨网络进行通信。
对于协议变换的服务,无论发送方的表示层做了什么,接收方的表示层都必须予以复原,从而使连接的双方在某个时刻分享相似的数据视图。
表示层传递的数据单元是APDU

常用协议:
ASCII、SSL/TLS、JPEG、MIDI

会话层

会话层(Session Layer),建立和管理应用程序之间的通信。定义了如何创建会话连接、会话控制(token令牌)和连接释放。包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的。在会话层及以上的高层中,数据传送的单位不在另外命名,而是统称为报文。
会话层传递的数据单元是SPDU

常用协议:
ADSP、RPC

传输层

传输层(Transport Layer),把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。负责向两个主机中进程之间的通信提供服务。
传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。
传输层提供逻辑连接的建立、传输层寻址、数据传输、传输连接释放、流量控制、拥塞控制、多路复用和解复用、崩溃恢复等服务。
传输层传递的数据单元是TPDU
TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)。

常用协议:
TCP、UDP、SPX

网络层

网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。
该层主要任务为通过路由选择算法 ,为报文通过通信子网选择最适当的路径。这一层定义的是IP地址,通过IP寻址。
网络层的中间设备叫做路由器(router)
传输层传递的数据单元是数据包(packet)

计算机网络-网络层
常用协议:
IP、ICMP

数据链路层

数据链路层(Data Link Layer)负责网络寻址、错误侦测和误差纠正控制。当表头和表尾被加至数据包时,会形成帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。
数据链路层协议又被分为两个子层 :逻辑链路控制(LLC)协议和媒体访问控制(MAC)协议。

数据链路层的中间设备叫做网桥或桥接器(bridge)
数据链路层传递的数据单元是数据帧(frame)

计算机网络-数据链路层
常用协议:
HDLC、PPP、SLIP、WIFI、GPRS

物理层

物理层(Physical Layer)在局部局域网上传送数据帧(data frame),它负责管理计算机通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。
物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。
简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层。

物理层的中间设备叫做转发器(repeater)
物理层传递的数据单元是数据位(bit)

常用协议:
EIA/TIA-232、EIA/TIA-485、EIA/TIA-499、V.35、V.24、RJ45
补充:
EIA (Electronic Industries Association 美国电子工业协会)是专门制定有关界面电气特性的组织。
TIA(Telecommunications Industries Association:美国通讯工业协会)则是专门制定通讯配线及架构的标准组织。

协议数据单元PDU(ProtocolDataUnit)是指对等层次之间传递的数据单元。
物理层 -> 数据位(bit)
数据链路 -> 数据帧(frame)
网络层 -> 数据包(分组)(packet)
传输层 -> 数据段(segment)
其他更高层不在分类,统称为数据(data)

白话:小明想对小红说一句话,在计算机的帮助下(通过一系列的协议和数据处理)最终会到达小红面前,使得小明想要表达的内容,小红可以通过计算机完整无误的看到小明说的话。

小明:你吃饭了吗?
应用层:编辑好信息,向下一层发送。
表示层:翻译、加密、压缩数据。
会话层:打包数据。
传输层:将包发给下一次层。
网络层:封装IP地址。
链路层:加个头尾转成帧,在加上MAC,转电信号。
物理层:定义信号含义,作为物理载体传输。

小红想要看到小明的消息要经过过:
物理层:收到信号,送到下一层。
链路层:转为帧,校错,送下层。
网络层:转报文,送包。
传输层:给下层。
会话层:看看数据完整不,少了没,完整了就送过去。
表示层:翻译下,解密。
应用层:他问我吃饭了没?(直男)

网络连接

Socket(套接字)

Socket是传输层协议的具体软件实现,socket是一个调用接口(API),主要用来对TCP/IP协议进行封装。socket上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口。
数据接收是由进程调用socket的接收函数发起的。
数据的发送是进程调用socket的发送函数发起的。

对于TCP/IP模型来讲,应用层向下到网络层,就要经过传输层,那传输层的其中一个实现就是socket,
socket提供了API供应用层的服务进行调用,这样就可以将这些连起来。

举例一个最常用的应用层协议HTTP,当我们在使用浏览器访问网页时,网页展示的数据就是从服务器端获取的数据,都说HTTP是基于TCP/IP的,这个基于的连接就是当HTTP进行时,如何驱动TCP/IP,就是通过socket进行。

流套接字(sock_stream)

流套接字用于提供面向连接、可靠的数据传输服务。特性符合TCP,原因就是其实用了TCP实现的。

数据报套接字(sock_dgram)

数据报套接字提供一种无连接的服务。不保证数据的可靠性,数据可能丢失或重复,不能保证数据的连续性。其使用的是UDP进行数据的传输。

原始套接字(sock_raw)

原始套接字可以读取非TCP/UDP协议外的数据。如果要访问其他协议发送的数据就得使用原始套接字。

工作流程:
通过互联网通信,至少需要一堆套接字,一个服务端,一个客户端。
1.服务端监听服务
服务监听,套接字没有具体连接的另一端,而是处于等待连接的状态,实时监控状态。
2.客户端请求
客户端发起连接请求,连接的目标为服务端的套接字。因此,客户端首要的任务是清楚的知道客户端的套接字(ip+port),然后就可以发起连接请求。
3.确认连接
当服务端监听到客户端发送的连接请求后,就会响应客户端的请求,建立一个新的线程,并把服务器端套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立好了。而服务器端继续保持监听状态,接收其他客户端的连接请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值