网站header设计,公众号取名简单大气,网上哪里有卖嗅探器,北京驾校网站建设IP地址 概念 使网络中的设备都有唯一的地址标识#xff0c;用于表示其在网络中的位置。
格式 IP地址是一个32位的二进制数#xff0c;通常被分割为4个8位二进制数#xff08;也就是4个字节#xff09;#xff0c;如#xff1a;01100100.00001000.00001010.00000110。通常…IP地址 概念 使网络中的设备都有唯一的地址标识用于表示其在网络中的位置。
格式 IP地址是一个32位的二进制数通常被分割为4个8位二进制数也就是4个字节如01100100.00001000.00001010.00000110。通常用“点分十进制”的方式进行表示即 a.b.c.d 的形式a,b,c,d都是0~255之间的十进制整数。如192.168.1.2。
特殊IP 0.0.0.0用于表示“不清楚”的主机和目的网络“不清楚”是指在本机的路由表中没有特定条目指明如何到达。255.255.255.255广播地址指广播域内的所有主机类似于“所有人”的意思这个地址不能被路由器转发。127.0.0.1本机地址用于本机回环测试类似于“我自己”的意思。224.0.0.1组播地址。从224.0.0.2到239.255.255.255都是这样的地址。224.0.0.1特指所有主机224.0.0.2特指所有路由器、这样的地址多用于一些特定的程序以及多媒体程序。如果主机开启了IRDP功能那么主机路由表中应该会有这样一条路由。168.254.X.X如果主机启用了DHCP功能主机未能从DHCP服务器上获取IP地址那么Windows系统会自动分配一个这样的地址。10.X.X.X、172.16.X.X~172.31.X.X、192.168.X.X私有地址。 端口号 概念 用于标识主机中发送数据、接收数据的进程。
格式 端口号是0~65535两个字节范围的数字在网络通信中进程可以通过绑定一个端口号来发送及接收网络数据。
分类
按端口号分类 公认端口号知名端口号0~1023。通常这些端口的通讯表明了某种服务的协议如80端口对应于http通信21端口绑定与FTP服务25端口绑定与SMTP服务135端口与RPC远程过程调用服务。 注册端口1024~49151。它们松散的绑定于一些服务也就是说有许多服务绑定于这些端口这些端口同样用于其他许多目的如许多系统处理端口从1024开始。 动态或私有端口49152~65535。理论上不应为服务分配这些端口通常机器从1024开始分配动态端口。例外SUN的RPC端口从32768开始。 按协议类型分类 TCP端口即传输控制协议端口需要在客户端和服务器之间建立连接这样可以提供可靠的数据传输。常见的包括FTP的21端口Telnet的23端口SMTP的25端口HTTP的80端口。UDP端口即用户数据报协议端口无需在客户端和服务器端建立连接安全性得不到保障。常见的DNS的53端口SNMP简单网络管理协议的161端口QQ使用的8000和4000端口。保留端口UNIX有保留端口号的概念只有超级用户特权的进程才允许给它自己分配一个保留端口号。这些端口号介于1~1023之间一些应用程序将它作为客户与服务器认证的一部分。 常用知名端口号 21端口FTP22端口SSH23端口Telnet80端口HTTP443端口HTTPS 注意事项 两个不同的进程不能绑定同一个端口号但一个进程可以绑定多个端口号。不要使用端口号小于1024的端口。客户端端口号因存在时间很短暂又称临时端口号大多数TCP/IP实现给临时端口号分配1024---5000之间的端口号。大于5000的端口号是为其他服务器预留的 。一个进程启动后系统会随机分配一个端口启动端口。 进程绑定一个端口号后fork一个子进程可以实现多个进程绑定一个端口号但不同的进程不能绑定同一个端口号。 协议 概念 网络协议简称“协议”是网络通信经过所有网络设备都必须共同遵从的一组约定、规则。协议最终体现在网络上传输的数据包的格式。 协议三要素 语法数据与控制信息的结构或格式语义需要发出何种控制信息完成何种动作以及做出何种相应时序即事件实现顺序 协议分层 对于网络协议来说往往分成几个层次进行定义。
分层的作用 分层最大的好处类似于面向接口编程定义好两层间的接口规范让双方遵循这个规范来对接。 在代码中类似于定义好一个接口一方为接口的实现类提供方提供服务一方为接口的使用类 使用方使用服务
对于使用方来说并不关心提供方是如何实现的只需要使用接口即可对于提供方来说利用封装的特性隐藏了实现的细节只需要开放接口即可。
OSI七层模型 OSIOpen System Interconnection七层模型是一个网络通信协议的标准化框架它将计算机网络通信划分为七个层次每一层负责不同的功能从物理连接到应用程序的处理。它的最大优点是将服务、接口和协议这三个概念明确地区分开来概念清楚理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 OSI 七层模型既复杂又不实用所以 OSI 七层模型没有落地、实现。 实际组建网络时只是以 OSI 七层模型设计中的部分分层也即是以下 TCP/IP 五层或四层模型来实现。 TCP/IP五层或四层模型 TCP/IP是一组协议的代名词它还包括许多协议组成了TCP/IP协议簇。 TCP/IP通讯协议采用了5层的层级结构每一层都呼叫它的下一层所提供的网络来完成自己的需求。 应用层负责应用程序间沟通如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等。我们的网络编程主要就是针对应用层。传输层负责两台主机之间的数据传输。如传输控制协议 (TCP)能够确保数据可靠的从源主机发送到目标主机。网络层负责地址管理和路由选择。例如在IP协议中通过IP地址来标识一台主机并通过路由表的方式规划出两台主机之间的数据传输的线路路由。路由器Router工作在网路层。数据链路层负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网无线LAN等标准。交换机Switch工作在数据链路层。物理层负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器Hub工作在物理层。 物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。
封装和分用 一些常见的概念 不同的协议层对数据包有不同的称谓在传输层叫做段(segment)在网络层叫做数据报(datagram)在链路层叫做帧(frame)。应用层数据通过协议栈发到网络上时每层协议都要加上一个数据首部(header)称为封装(Encapsulation)。首部信息中包含了一些类似于首部有多长载荷(payload)有多长上层协议是什么等信息。数据封装成帧后发到传输介质上到达目的主机后每层协议再剥掉相应的首部根据首部中的 上层协议字段 将数据交给对应的上层协议处理 下图为数据封装的过程 下图为数据分用的过程 两台主机间的网络通信 网络编程 网络编程指网络上的主机通过不同的进程以编程的方式实现网络通信或称为网络数据传输。当然我们只要满足进程不同就行所以即便是同一个主机只要是不同进程基于网络来传输数据也属于网络编程。特殊的对于开发来说在条件有限的情况下一般也都是在一个主机中运行多个进程来完成网络编程。但是我们一定要明确我们的目的是提供网络上不同主机基于网络来传输数据资源。
发送端和接收端 在一次网络数据传输时 发送端数据的发送方进程称为发送端。发送端主机即网络通信中的源主机。 接收端数据的接收方进程称为接收端。接收端主机即网络通信中的目的主机。收发端发送端和接收端两端也简称为收发端。 注意发送端和接收端只是相对的只是一次网络数据传输产生数据流向后的概念。
请求与响应 一般来说获取一个网络资源涉及到两次网络数据传输 第一次请求数据的发送第二次响应数据的发送。 客户端与服务端 在常见的网络数据传输场景下把提供服务的一方进程称为服务端可以提供对外服务。获取服务的一方进程称为客户端。 常见的客户端服务端模型 客户端先发送请求到服务端服务端根据请求数据执行相应的业务处理服务端返回响应发送业务处理结果客户端根据响应数据展示处理结果展示获取的资源或提示保存资源的处理结果