,从而完成计算机之间的通信 计算机之间的通信: 主机A的某个进程与主机B上的另一个进程进行通信 # 网络字节序转换 对于数据在网络中传输的时候有着自己遵循的传输规则大端传输 对于主机上的数据的传输序列有着两种...不可靠:没有确认机制,没有重传机制;因为没有网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息 面向数据报:不能够灵活的控制读写数据的次数和数量 控制选项较少,数据传输过程中延迟小...因为UDP是不面向连接的,所以没有重发机制,也就不需要发送缓存区将已经发送的数据保存下来为了发送失败进行重传做准备 UDP具有接收缓存区。...书写服务器的思路 由于UDP是无连接的,所以对于两个处于同一局域网下计算机的进程之间通信,所以是不需要两台计算机之间的进程进行连接的,对于UDP使用的接口是需要包含知道从哪里接收消息的,要发送消息到哪里的...实现本地通信 服务器 只需要服务器创建一个套接字 使该套接字对于本地地址(127.0.0.1)进行绑定,并且绑定一个端口号(1024--65535)就行了 绑定本地地址是为了对于本地计算机的两个进程进程通信
,从而完成计算机之间的通信 计算机之间的通信: 主机A的某个进程与主机B上的另一个进程进行通信 网络字节序转换 对于数据在网络中传输的时候有着自己遵循的传输规则大端传输 对于主机上的数据的传输序列有着两种...不可靠:没有确认机制,没有重传机制;因为没有网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息 面向数据报:不能够灵活的控制读写数据的次数和数量 控制选项较少,数据传输过程中延迟小...因为UDP是不面向连接的,所以没有重发机制,也就不需要发送缓存区将已经发送的数据保存下来为了发送失败进行重传做准备 UDP具有接收缓存区。...书写服务器的思路 由于UDP是无连接的,所以对于两个处于同一局域网下计算机的进程之间通信,所以是不需要两台计算机之间的进程进行连接的,对于UDP使用的接口是需要包含知道从哪里接收消息的,要发送消息到哪里的...实现本地通信 服务器 只需要服务器创建一个套接字 使该套接字对于本地地址(127.0.0.1)进行绑定,并且绑定一个端口号(1024–65535)就行了 绑定本地地址是为了对于本地计算机的两个进程进程通信
、然后传输数据、最后断开连接,它保证了两台计算机之间可靠无差错的数据传输。...向深入的了解 TCP 原理的同学,可以看看这篇博客文章。 下面我们要重点说说 TCP 中的三次握手与四次挥手,因为这种数据传输模型保证了两台计算机之间可靠无差错的数据传输。...在发送端,UDP 传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列中读一个消息段。...Socket,也被称为套接字,它是网络通信中两台主机之间逻辑连接的端点的抽象表示,包含了进行网络通信必须的五种信息:连接使用的协议、本地主机的 IP 地址、本地进程的协议端口、远程主机的 IP 地址、远程进程的协议端口...; printWriter.flush(); //关闭输出,不再输出更多数据,如果不关闭,就会出现服务器无法判断客户机何时会结束发送消息,从而无法进行回应。
其实计网通篇研究的核心就是不同计算机之间的通信过程,? 本文将从小白的角度,讲解两台计算机之间是如何精确的找到对方的位置并发送和接收消息的,以帮助读者从宏观角度把握计算机网络的体系结构。 ? 1....五层协议参考模型 所谓通信协议就是通信双方都必须要遵守的通信规则。如果没有网络通信协议,计算机的数据将无法发送到网络上,更无法到达对方计算机,即使能够到达,对方也未必能读懂。...物理层 两台计算机之间要进行通信,必然需要传输介质/物理媒介来连接两台计算机,这样,我们才能把数据传输过去。...把一台计算的的数据通过物理层和链路层发送给另一台计算机,究竟是谁发给谁的,计算机与计算机之间如何区分,你总得给他们一个唯一的标识吧? 于是,MAC 地址出现了 ?...域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。 ? DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。
我们举一个例子-通过IP电话进行通话,如果使用TCP,数据在传输图中如果丢失会被重发,但这样无法流畅地传输通话人的声音,会导致无法进行正常交流。而采用UDP,它不会进行重发处理。...,这是第一次对话; 2)主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”...在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。...发送方的UDP对应用程序交下来的报文, 在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界, 因此,应用程序需要选择合适的报文大小。...我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常, 其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包, 如果数据包是否到达的消息及时反馈回来,那么网络就是通的
当协商通信协议时,对接的客户端同学告诉我在发送数据的时候要将要发送的Buffer从本地序转换为网络序,当收到客户端的回包时,需要将收到的Buffer从网络序转换为本地序。...所谓的网络序和本地序其实就是一个跨越多个字节的程序对象(在Node.js中可以简单的认为是一个长度大于1的Buffer对象)在存储器中的存储顺序,在了解这两种字节顺序之前,我们来复习一下计算机的寻址规则...不过以下三种情况,字节顺序会成为问题: 在不同类型的机器之间通过网络传送二进制数据时。一个常见的问题是当小端法机器产生的数据被发送到大端法机器或者反方向发送时会发现,接收的数据里的字节成了反序的。...在那个时代,《格列佛游记》是在讽刺英国(Lilliput)和法国(Blefuscu)之间持续的冲突。...Node.js里怎么玩? 作为为web而生的Node.js当然提供了网络序(大端法)和本地序(大端 or 小端)互相转换。
当协商通信协议时,对接的客户端同学告诉我在发送数据的时候要将要发送的Buffer从本地序转换为网络序,当收到客户端的回包时,需要将收到的Buffer从网络序转换为本地序。...所谓的网络序和本地序其实就是一个跨越多个字节的程序对象(在Node.js中可以简单的认为是一个长度大于1的Buffer对象)在存储器中的存储顺序,在了解这两种字节顺序之前,我们来复习一下计算机的寻址规则...不过以下三种情况,字节顺序会成为问题: 在不同类型的机器之间通过网络传送二进制数据时。一个常见的问题是当小端法机器产生的数据被发送到大端法机器或者反方向发送时会发现,接收的数据里的字节成了反序的。...在那个时代,《格列佛游记》是在讽刺英国(Lilliput)和法国(Blefuscu)之间持续的冲突。...(4个字节,可以为空)+消息命令字(1个字节,不能为空)+消息体(给客户端的文案,1个字节buffer长度+utf-8编码的buffer) 客户端回包给Node.js的包体协议: 按字段的前后顺序拼装数据包
当协商通信协议时,对接的客户端同学告诉我在发送数据的时候要将要发送的Buffer从本地序转换为网络序,当收到客户端的回包时,需要将收到的Buffer从网络序转换为本地序。...所谓的网络序和本地序其实就是一个跨越多个字节的程序对象(在Node.js中可以简单的认为是一个长度大于1的Buffer对象)在存储器中的存储顺序,在了解这两种字节顺序之前,我们来复习一下计算机的寻址规则...不过以下三种情况,字节顺序会成为问题: 在不同类型的机器之间通过网络传送二进制数据时。一个常见的问题是当小端法机器产生的数据被发送到大端法机器或者反方向发送时会发现,接收的数据里的字节成了反序的。...在那个时代,《格列佛游记》是在讽刺英国(Lilliput)和法国(Blefuscu)之间持续的冲突。...+消息序列号(4个字节,可以为空)+消息命令字(1个字节,不能为空)+消息体(给客户端的文案,1个字节buffer长度+utf-8编码的buffer) 客户端回包给Node.js的包体协议: 按字段的前后顺序拼装数据包
当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port...原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。...故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。...Ping 127.0.0.1:127.0.0.1是本地循环地址 如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。...定义echo数据包大小 -f 在数据包中发送“不要分段”标志 -i TTL 指定TTL值在对方的系统里停留的时间 -r count 在“记录路由”字段中记录传出和返回数据包的路由 -w timeout
计算机网络实现了多台计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序,这些程序借助于网络协议,相互之间可以交换数据。...局域网(Local Area Network,LAN)就是一群通过一定形式连接起来的计算机,它可以由两台计算机组成,也可以由同一区域内的上千台计算机组成。...18.1.2 网络协议 网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电器(有效的电平范围)等特征,计算机之间的相互寻址规则,数据发送冲突的解决方式,长数据如何分段传送与接收等内容。...通常是使用了一个被其他程序占用的端口号,ServerSocket绑定没有成功。 18.2.3 TCP网络程序 在网络编程中如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单向通信。...18.3 UDP程序设计基础 用户数据报协议(UDP)是网络信息传输的另一种形式,使用UDP传递数据时,用户无法知道数据能否正确地到达主机,也不能确定到达目的地的顺序是否和发送的顺序相同。
网络层具有寻址和路由选择,连接的建立,保持,终止等功能。 传输层:传输层是端到端的连接,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信,比如TCP和UDP属于这一层的协议。...判断两台机器是否相通,我们从上面的OSI模型中能知道在IP层实现就行了,IP层是实现两台机器的通信,关于IP层我们从上面也知道有IP协议,IPX协议等,其实我们只要能知道实现IP层协议的一些命令就能知道如何通过命令知道两台机器是否相通...它是基于网络层、通过发送和接收数据包来检测两台计算机间的连接状况。...它的实现是利用从每个机器节点之间的IP报的TTL从1开始递增同时发送UDP包,当出错则接受ICMP包的超时错误信息。 我们参考下图,就能清楚的描述 traceroute 的整个过程。...它是IP层中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发送的问题作出诊断,从而采取适当措施来解决问题。
利用这个原理,攻击者计算机便可以通过发送合适的报文,判断目标计算机哪些TC 或UDP端口是开放的, 过程如下: 1、发出端口号从0开始依次递增的TCP SYN或UDP报文(端口号是一个16比特的数字,这样最大为...Fraggle 攻击 Fraggle 攻击只是对Smurf 攻击作了简单的修改,使用的是UDP协议应答消息,而不再是ICMP协议了(因为黑客们清楚 UDP 协议更加不易被用户全部禁止)。...这样如果攻击者向目标计算机发送大量的ICMP ECHO报文(产生ICMP洪水),则目标计算机会忙于处理这些ECHO 报文,而无法继续处理其它的网络数据报文,这也是一种拒绝服务攻击(DOS)。...这样,就造成了“ARP 欺骗”的可能。 比如黑客分别向两台主机发送一个ARP应答包,让两台主机都“误”认为对方的MAC地址是第三方的黑客所在的主机。...同时黑客连续不断地向这两台主机发送这种虚假的ARP响应包,让这两台主机一直保存错误的ARP表项,使其可以一直探听这两台主机之间的通信。
网络基础 计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。 那什么是互联网呢?...如果两台计算机计算出的网络号不同,那么两台计算机不在同一个网络,不能直接通信,它们之间必须通过路由器或者交换机这样的网络设备间接通信,我们把这种设备称为网关。...这是因为它对两台计算机之间的连接起了重要作用—当一台计算机需要与另一台远程计算机连接时, TCP 协议会让它们建立一个连接: 用于发送和接收数据的虚拟链路。...尤其是在一些实时性很强的应用场景中, 比如网络游戏、 视频会议等, UDP 协议的快速更具有独特的魅力。...UDP 协议的主要作用是完成网络数据流和数据报之间的转换一在信息的发送端, UDP 协议将网络数据流封装成数据报, 然后将数据报发送出去; 在信息的接收端, UDP 协议将数据报转换成实际数据内容。
第二次握手,主机B向主机A发送同意连接,并要求同步的数据包(同步就是两台主机协调工作,一台在发送,一台在接收):“可以,你什么时候发?”这是第二次对话。...同时在数据的传输过程中TCP还具有流量控制,差错控制等功能,比如发送端发送的数据速度过快,而接收端的接收速度却很慢,就很难保证数据不丢失,所以需要进行流量控制。...在发送端,UDP传送数据的速度仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。...我们经常使用ping命令来测试两台主机之间的TCP/IP通信是否正常。...其实ping命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包到达的消息及时反馈回来,那么网络就是通的,并且可以通过返回的数据包计算响应时间。
网络基础 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。...在连接中可进行大数据量的传输 传输完毕,需释放已建立的连接,效率低 UDP协议: 将数据、源、目的封装成数据包,不需要建立连接 每个数据报的大小限制在64K内 发送不管对方是否准备好,接收方收到也不确认...,故是不可靠的 可以广播发送 发送数据结束时无需释放资源,开销小,速度快 第一次的时候确认发送方能发送消息 第二次的时候确认接收方能接受消息和发送消息 第三次的时候确认接收方能接受消息...网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 通信的两端都要有Socket,是两台机器间通信的端点。 网络通信其实就是Socket间的通信。...public DatagramSocket(int port,InetAddress laddr) 创建数据报套接字,将其绑定到指定的本地地址:本地端口必须在 0 到 65535 之间(包括两者)。
两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。...简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。...但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。UDP的交换过程如下图所示。...TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。...第二章 TCP通信程序 2.1 概述 TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。
传输层(transport layer) 为应用层控制了报文在两台主机之间的流动。它还代表通信的应用程序端点,称为 端口(port)。 ...UDP 是一种面向消息的协议,它不能确保有序地发送数据,也无法管理网络拥塞的问题。然而,UDP 是一种快速协议,可以保护自己传输的消息的边界。 ...SCTP 它提供了像TCP一样可靠、有序地发送数据的功能,但却以像UDP一样面向消息的方式来进行操作,这可以保护消息边界。...在TCP中,连接(connection)是指两个端点之间的一个通道(在这种情况下,就是两台主机的网络接口之间的一个套接字)。...TCP可以确保数据是按照次序发送的(考虑到TCP是一种流协议,这是一件好事)。UDP无法确保有序地发送数据。但是如果需要,您也可以在 SCTP 中配置流来接受无序的消息。
这种网络一般是私有的,这几台计算机之外的计算机无法访问。随着时代的发展,人们开始尝试在私有网络上搭建更大的私有网络,逐渐又发展演变为互联网,现在我们每个人几乎都能够享有互联网带来的便利。...计算机通信 在分时系统中,每个终端与计算机相连,这种独占性的方式并不是计算机之间的通信,因为每个人还是在独立的使用计算机。...ICMP 属于网络层的协议,当遇到 IP 无法访问目标、IP 路由器无法按照当前传输速率转发数据包时,会自动发送 ICMP 消息,从这个角度来说,ICMP 协议可以看作是 错误侦测与回报机制,让我们检查网络状况...但是 UDP 具有较好的实时性,工作效率较 TCP 协议高。...每台主机都与一台交换机直接相连,当两台主机需要通信时,该网络在两台主机之间创建一条专用的 端到端的链接(end-to-end connection)。
当通信的距离变长时,通过一台服务器来给多个主机提供服务显然是不够的,所以有了局域网的出现,比如广州和内蒙的两台主机或者更多更多的主机要进行通信,此时就需要交换机,集线器,路由器等设备来进行数量诸多的计算机之间的连接...它通常具有不同网络(ipv6和ipv4)的转换功能,以及协议(HTTP转换为FTP)之间的转换和交换数据功能。)...MAC地址是数据链路层的地址,用于在同一网络中的主机之间进行通信。如果目标主机和发送主机在同一个网络中,那么数据包就可以直接发送到目标主机的MAC地址,所以MAC地址是在本地网络中分配的。...127.0.0.1是一个类IP的特殊地址,叫做本地环回地址。他是IPV4地址段保留的特殊IP地址,只能用于当前计算机本身,其他计算机无法访问此地址。...UDP叫做用户数据报协议,他在进行网络通信时,不需要建立连接,所以UDP是一种不可靠传输,同样我们还是无法感受到这种不可靠性。UDP是面向数据报的。
,这是第一次对话;主机B向主机 A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”...TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 2....面向非连接的UDP协议 “面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。...比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送ICMP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来...QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
领取专属 10元无门槛券
手把手带您无忧上云