赣州网站制作公司如何制作手机版网站

当前位置: 首页 > news >正文

赣州网站制作公司,如何制作手机版网站,做外贸网站那个平台好,备案时如何关闭网站⭐小白苦学IT的博客主页 ⭐初学者必看#xff1a;Linux操作系统入门 ⭐代码仓库#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 本节重点 认识IP地址, 端口号, 网络字节序等网络编程中的基本概念; 1.前言 网络编程#xff0c;作为现代信息社会中的一项核心技术Linux操作系统入门 ⭐代码仓库Linux代码仓库 ❤关注我一起讨论和学习Linux系统 本节重点 认识IP地址, 端口号, 网络字节序等网络编程中的基本概念; 1.前言 网络编程作为现代信息社会中的一项核心技术不仅支撑着互联网应用的蓬勃发展更深刻地影响着我们的日常生活与工作方式。在探索网络编程的奥秘时我们会发现一些基础而重要的概念如IP地址、端口号和网络字节序它们如同构建网络世界的基石支撑起整个网络通信的大厦。 IP地址作为网络世界中每个设备的唯一标识为信息的准确传递提供了基础。端口号则进一步细化了通信的目标确保数据能够到达正确的应用程序。而网络字节序则是网络通信中数据格式化的关键它确保了不同系统间能够正确地解析和传递数据。 在这篇博客中我们将深入解析这些网络编程中的核心概念探讨它们的原理、作用以及在实际应用中的重要意义。通过理解这些基础概念我们不仅能够更好地掌握网络编程的技术更能为构建高效、稳定的网络系统提供坚实的理论支撑。 2.理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址. 源IP地址顾名思义就是数据包的起始地址它告诉网络中的路由器这个数据包是从哪个设备发出的。这就像唐僧系统取经的故事中唐僧和他的徒弟们从大唐源地址出发去西天取经。在这个比喻中大唐就可以看作是源IP地址代表了旅程的起点。 目的IP地址则是数据包的目标地址它告诉网络中的路由器这个数据包应该送到哪个设备。在唐僧西天取经故事中西天灵山就是他们的目的地代表了他们想要达到的目标。因此灵山在这个比喻中就对应着目的IP地址。 在网络通信中路由器就像故事中的指路者它们根据数据包中的源IP地址和目的IP地址决定数据包应该经过哪条路径最终到达正确的目的地。就像唐僧他们一路上需要经过多个国家和城市最终才能到达西天一样数据包在网络中也需要经过多个路由器和交换机才能从源IP地址到达目的IP地址。 思考: 我们光有IP地址就可以完成通信了嘛? 想象一下发qq消息的例子, 有了IP地址能够把消息发送到对方的机器上,但是还需要有一个其他的标识来区分出, 这个数据要给哪个程序进行解析. 3.认识端口号 端口号(port)是传输层协议的内容. 端口号是一个2字节16位的整数;端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理;IP地址 端口号能够标识网络上的某一台主机的某一个进程;一个端口号只能被一个进程占用. 用一个故事理解端口号 想象一下10086是中国移动的客服电话它就像一个网络中的服务端口等待着客户的来电。这个电话号码10086就类似于一个端口号它在中国移动的网络服务中起到了标识和定位的作用。 在中国移动的网络中可能有许多不同的服务比如话费查询、套餐变更、故障报修等。这些服务都需要一个特定的“通道”或“接口”来接收和处理来自客户的请求。端口号就像是这样的一个“通道”或“接口”它确保客户的请求能够准确地被发送到相应的服务部门。 当客户拨打10086时电话网络会根据这个电话号码端口号将客户的请求路由到中国移动的客服中心。在客服中心可能有多个接线员或者说多个处理请求的线程或进程负责处理不同的服务请求。但是由于客户的电话是通过10086这个端口号接入的客服中心就能够知道这个请求是来自于拨打10086的客户从而将其分配到相应的服务部门进行处理。 同样的如果中国移动还提供了其他的客服电话比如10085用于推销新业务10088用于VIP客户服务等那么这些电话号码就对应着不同的端口号。每个端口号都负责接收和处理特定类型的请求确保了服务的准确性和高效性。 理解 端口号 和 进程ID 我们之前在学习系统编程的时候, 学习了 pid 表示唯一一个进程; 此处我们的端口号也是唯一表示一个进程. 那么这两者之间是怎样的关系? 在系统编程和网络编程中PID进程标识符和端口号都扮演着标识特定实体的角色但它们标识的对象和用途有所不同。 PID是操作系统用来唯一标识每个正在运行的进程的数字。操作系统会为每个新启动的进程分配一个唯一的PID用于内部管理和控制如启动、停止、暂停、恢复和终止进程等操作。PID保证了在操作系统层面每个进程都可以被准确地识别和操作。 端口号则主要用于网络通信用于标识运行在同一台计算机上的不同应用程序或服务。每个网络服务或应用程序都可以绑定到一个或多个特定的端口号上这样网络数据包就能够根据目标端口号被正确地路由到对应的应用程序。端口号确保了在网络层面数据能够准确地传输到目标应用程序。 简而言之PID是操作系统内部用来唯一标识和管理进程的而端口号则是在网络通信中用来标识和区分不同应用程序或服务的。一个进程可以有一个或多个与之关联的端口号如果该进程涉及网络通信但PID和端口号并不是一一对应的关系。一个进程可以有PID但没有绑定任何端口如果它不涉及网络通信而一个端口号则可以对应多个进程例如多个进程可以监听同一个端口但通常这需要特殊的配置和处理。 因此PID和端口号虽然都是用来唯一标识某种实体但它们标识的对象和使用的上下文是不同的。PID是操作系统层面的进程标识而端口号是网络通信层面的应用程序或服务标识。 理解源端口号和目的端口号 传输层协议(TCP和UDP)的数据段中有两个端口号, 分别叫做源端口号和目的端口号. 就是在描述 数据是谁发的, 要发给谁; 想象一下送快递就像网络中的数据传输而源端口号和目的端口号就像是快递单上的发货地址和收货地址。 首先我们来看源端口号。假设你是一家网店当你需要给顾客发货时你会将商品打包好并填写快递单。在这个快递单上发货地址就是你的店铺地址对应到网络通信中这个发货地址就相当于是源端口号。源端口号标识了数据是从哪个应用程序或服务发出的它告诉网络“这些数据是从我这里发出去的请把它们送到正确的目的地。” 接下来我们看目的端口号。在快递的例子中你填写快递单时还需要写上顾客的收货地址。这个收货地址就是快递的目的地对应到网络通信中就是目的端口号。目的端口号标识了数据应该被发送到哪个应用程序或服务它告诉网络“这些数据是送给那个特定的接收者的请确保它们能够准确地送达。” 在送快递的过程中快递公司会根据快递单上的发货地址和收货地址来安排快递的路线和投递。同样地在网络通信中路由器和交换机等网络设备会根据数据包中的源端口号和目的端口号来确定数据的传输路径确保数据能够准确地从发送方到达接收方。 总结来说源端口号就像快递单上的发货地址标识了数据的发送源而目的端口号就像收货地址标识了数据的接收目标。通过这两个端口号网络通信能够像送快递一样将数据准确地发送到目标应用程序或服务。 4.认识TCP协议 此处我们先对TCP(Transmission Control Protocol 传输控制协议)有一个直观的认识; 传输层协议有连接可靠传输面向字节流 TCP协议Transmission Control Protocol传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议由IETF的RFC 793定义。它的主要作用是在网络应用中建立可靠的数据传输通道确保数据按照发送的顺序到达接收端并进行流量控制以防止发送速度过快导致接收端无法处理。 TCP协议之所以被广泛使用主要是因为其能保证数据的可靠传输。在传输数据时TCP协议会对数据进行分片、编号、校验等处理同时还会进行数据的确认和重传等操作确保数据的完整性和顺序性。此外TCP协议还能通过窗口机制控制发送端的发送速度实现流量控制防止网络拥塞。 理解TCP协议首先要了解其工作原理。TCP协议的工作过程主要包括建立连接、数据传输和可靠传输三个步骤。在建立连接时通信双方会进行三次握手确认连接的建立。然后在数据传输阶段发送方会将数据划分成小块称为报文段并添加头部和校验等信息通过TCP协议发送给接收方。接收方收到报文段后会进行校验并重新组装成完整的数据流。最后TCP协议通过各种机制保证数据的可靠传输如使用序列号对报文段进行标记确保接收方按正确顺序重组数据在发现报文段丢失或未收到确认时会重新发送报文段。 TCP协议的应用场景非常广泛包括Web浏览、电子邮件、文件传输、远程登录以及即时通讯等。在这些应用中TCP协议都发挥着确保数据可靠传输的重要作用。 总的来说TCP协议是一种高效且可靠的传输层协议它通过一系列复杂的机制保证了数据的完整性、顺序性和流量控制为各种网络应用提供了稳定的数据传输服务。 后面我们再详细讨论TCP的一些细节问题. 5.认识UDP协议 UDPUser Datagram Protocol协议是一种无连接的传输层协议它基于IP协议为应用程序提供了一种简单的、不可靠的数据传输方式。UDP协议的主要特点如下 无连接性UDP在发送数据之前不需要建立连接发送方可以直接将数据报发送给接收方无需进行握手和协商从而减少了开销和发送数据之前的时延。不可靠性UDP不保证数据包的可靠性、顺序性和完整性。它采用尽力交付的方式即发送方只负责尽力将数据传输给接收方而不保证接收方是否正确接收。这种特性使得UDP在传输过程中的开销较小传输更加高效。面向报文UDP对应用层交下来的报文既不合并也不拆分而是保留这些报文的边界并在添加首部后直接向下交付IP层。无拥塞控制UDP没有拥塞控制机制网络出现的拥塞不会使源主机的发送速率降低。这对于某些实时应用如在线游戏、实时音视频传输等非常重要因为它们需要高传输效率尽管可能会牺牲一些数据的可靠性。支持多种交互通信UDP支持一对一、一对多、多对一和多对多的交互通信模式。首部开销小UDP的首部只有8个字节比TCP的20个字节的首部要短进一步降低了传输开销。 基于以上特点UDP协议在多个领域有广泛的应用包括但不限于实时流媒体传输如在线游戏、视频会议和直播等、DNS域名解析查询、SNMP网络设备管理和监控等。在这些应用中UDP协议能够高效地处理大量的小数据包满足实时性和高效率的要求。 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 6.网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分, 网络数据流同样有大端小端之分. 那么如何定义网络数据流的地址呢? 发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出;接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存;因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高地址.TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节.不管这台主机是大端机还是小端机, 都会按照这个TCP/IP规定的网络字节序来发送/接收数据;如果当前发送主机是小端, 就需要先将数据转成大端; 否则就忽略, 直接发送即可; 为使网络程序具有可移植性,使同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机字节序的转换。 这些函数名很好记,h表示host,n表示network,l表示32位长整数,s表示16位短整数。例如htonl表示将32位的长整数从主机字节序转换为网络字节序,例如将IP地址转换后准备发送。如果主机是小端字节序,这些函数将参数做相应的大小端转换然后返回 ;如果主机是大端字节序,这些 函数不做转换,将参数原封不动地返回。  网络字节序是什么 网络字节序是TCP/IP中规定好的一种数据表示格式它与具体的CPU类型、操作系统等无关这样可以确保数据在不同主机之间传输时能够被正确解释。这种格式采用的是big-endian大端排序方式也就是高位在前低位在后。 为什么要有网络字节序 至于网络字节序的由来我们可以从一个有趣的故事说起。这个词“endian”其实出自于《格列佛游记》。书中描述的小人国的内战竟然源于一个看似微不足道的问题吃鸡蛋时是究竟从大头Big-Endian敲开还是从小头Little-Endian敲开。这个问题竟然导致了六次叛乱其中一个皇帝因此丧命另一个则丢掉了王位。虽然这只是一个虚构的故事但它生动地展示了“顺序”的重要性。 在计算机网络中这种“顺序”问题同样存在。由于不同的主处理器和操作系统对大于一个字节的变量在内存中的存放顺序可能会有所不同这就产生了字节序的问题。而为了保证数据的正确传输和解释网络字节序作为一种统一的规定就显得尤为重要。它确保了在不同的主机和系统之间数据的传输和解析都能够准确无误。 所以网络字节序的存在就像是计算机网络世界中的一个“和平条约”它使得不同主机和系统能够和谐共处共同维护着网络数据的正确性和完整性。 7.总结 IP地址是互联网协议地址用于在网络中唯一标识不同的主机或设备。它是网络通信的基础使得数据能够准确地发送到目标设备。IP地址分为IPv4和IPv6两个版本分别具有不同的位数和表示方式。IPv4地址是一个4字节、32位的整数通常用点分十进制的方式表示而IPv6地址则是一个16字节、128位的整数提供了更大的地址空间。 其次端口号用于在一台主机上唯一标识一个网络通信进程。虽然IP地址可以指定网络传输的目标设备但同一台设备上可能运行着多个应用程序因此需要端口号来区分不同的通信进程。端口号是一个2字节、16位的整数其范围通常为1到65535。通过指定源端口和目的端口可以确保数据被正确地发送到目标主机上的对应进程。 最后网络字节序是TCP/IP协议中规定的一种数据表示格式用于确保数据在不同主机之间传输时能够被正确解释。由于不同的主机可能有不同的字节序大端或小端因此需要将数据转换为统一的网络字节序大端序进行传输。这样接收方在收到数据后可以按照相同的格式进行解析从而避免数据解析错误。 综上所述IP地址、端口号和网络字节序是网络编程中的基本概念它们共同构成了网络通信的基础。IP地址负责标识网络中的设备端口号用于区分同一设备上的不同通信进程而网络字节序则确保了数据的正确传输和解析。