厦门网站建设工作室,软件详细设计包括哪些内容,wordpress hestia pro,二级域名做网址导航大全网站一、 网络通信基础
网络互连的目的是进行网络通信#xff0c;也即是网络数据传输#xff0c;更具体一点#xff0c;是网络主机中的不同进程间#xff0c;基于网络传输数据。 那么#xff0c;在组建的网络中#xff0c;如何判断到底是从哪台主机#xff0c;将数据传输到…一、 网络通信基础
网络互连的目的是进行网络通信也即是网络数据传输更具体一点是网络主机中的不同进程间基于网络传输数据。 那么在组建的网络中如何判断到底是从哪台主机将数据传输到那台主机呢这就需要使用IP地址来标识。
1.1 IP地址
IP地址用于定位主机的网络地址 就像我们发送快递一样需要知道对方的收货地址快递员才能将包裹送到目的地。
IP地址解决了网络通信时定位网络主机的问题但是还存在一个问题传输到目的主机后由哪个进程来接收这个数据呢这就需要端口号来标识。
1.2 端口号
在网络通信中IP地址用于标识主机网络地址端口号可以标识主机中发送数据、接收数据的进程。简单说端口号用于定位主机中的进程。
注意两个不同的进程不能绑定同一个端口号但一个进程可以绑定多个端口号。
1.3 协议
协议网络协议的简称网络协议是网络通信即网络数据传输经过的所有网络设备都必须共同遵从的一组约定、规则。
协议protocol最终体现为在网络上传输的数据包的格式。
1.4 五元组
在TCP/IP协议中用五元组来标识一个网络通信 1. 源IP标识源主机 2. 源端口号标识源主机中该次通信发送数据的进程 3. 目的IP标识目的主机 4. 目的端口号标识目的主机中该次通信接收数据的进程 5. 协议号标识发送进程和接收进程双方约定的数据格式
1.5 协议分层
协议分层类似于打电话时定义不同的层次的协议
1.6 TCP/IP五层模型(important)
应用层负责应用程序间沟通如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等。 传输层不关注中间路径只关心起点和终点负责两台主机之间的数据传输 网络层两个遥远节点之间的路径规划负责地址管理和路由选择 数据链路层关注两个相邻结点的传输设备之间的数据帧的传送和识别 物理层网络通信的基础设施。网线、光纤、网络接口等。负责光/电信号的传递方式
1.7 封装和分用
发送方发送数据要把数据从上到下交给依次对应的层次的协议进行封装 接收方接收数据要把数据从下到上交给依次对应的层次的协议进行解析
下面以QQ发消息为例说明封装和分用的过程 我作为发送方在编辑框输入一个消息“吃饭了吗”。发给姐姐。 则会有如下过程 1应用层qq拿到上述用户数据进行封装封装成应用层数据包本质就是字符串拼接 2传输层拿到上述数据 应用层调用传输层的api来处理这个数据 传输层有很多协议其中最典型的就是TCP和UDP
此处以UDP为例 UDP针对上述数据包在进行封装 就是给上述应用层数据包加了“报头”变成数据报一个典型的数据报结构就是“报头””载荷“。这里应用层数据包作为UDP数据报的”载荷“
3传输层到网络层 此时是一个UDP数据报接下来把他交给网络层的协议 网络层最常见的协议就是IP协议
加上一个IP协议的报头整个UDP数据报作为载荷 源IP和目的IP就描述了这次传输最初的起点和最终的终点
4网络层交给数据链路层 最典型的协议以太网数据链路层和物理层
给上述的IP数据报加上以太网帧头和帧尾变成以太网数据帧 其中mac地址也叫物理地址也是描述一个设备在网络上的位置和IP很相似
5数据链路层把上述以太网数据帧交给物理层
物理层把上述二进制数据转换成光信号/电信号/电磁信号进行传输
以上的操作咱们的操作系统都已经封装好了
而接受的过程和上述刚好相反从下到上依次分用
1物理层收到高低电平二进制数据 会对这些信号解析变成二进制序列
2从物理层到数据链路层 把上述二进制序列当成一个以太网数据帧去掉帧头和帧尾交给网络层
3网络层 此时由网络层的IP协议进行解析数据报去掉IP报头和其他工作 4传输层 由UDP进行解析将载荷交给应用层 5由qq程序解析应用层数据报并取出下列字段放在程序的界面中
真实的网络传输可能还会经过多个节点