在现实生活中,如果要打电话则需要知道对应人的电话号码,如果要寄信则需要知道收信
人的地址。在网络中也是这样,需要知道一个设备的位置,则需要使用该设备的 IP 地
址,具体的连接过程由硬件实现,程序员不需要过多的关心。
IP 地址是一个规定,现在使用的是 IPv4 ,既由 4 个 0- - 255 之间的数字组成,在计算
机内部存储时只需要 4 个字节即可。在计算机中, IP 地址是分配给网卡的,每个网卡有一
个唯一的 IP 地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的 IP 地
址,在同一个网络内部, IP 地址不能相同。 IP 地址的概念类似 于电话号码、身份证这样
的概念。
由于 IP 地址不方便记忆,所以有专门创造了域名 (Domain Name) 的概念,其实就是给
IP 取一个字符的名字,例如 163.com 、m sina.com 等。IP 和域名之间存在一定的对应关
系。如果把 P IP 地址类比成身份证号的话,那么域名就是你的姓名。
其实在网络中只能使用 IP 地址进行数据传输,所以在传输以前,需要把域名转换为
IP ,这个由称作 DNS 的服务器专门来完成。
所以在网络编程中,可以使用 IP 或域名来标识网络上的一台设备。
udp:
a 、是面向无连接 , 将数据及源的封装成数据包中 , 不需要建立建立连接
b 、每个数据报的大小在限制 64k 内
c 、因无连接,,是不可靠协议
d 、不需要建立连接 , 速度快
tcp :
a 、建议连接,形成传输数据的通道 .
b 、在连接中进行大数据量传输,以字节流方式
c 、通过三次握手完成连接 , 是可靠协议
d 、必须建立连接 m 效率会稍低
在 P TCP/IP 协议中,P TCP 协议采用三次握手建立一个连接。
第一次握手: : 建立连接时,客户端发送 N SYN 包 (SYN=J) 到服务器,并进入 D SYN_SEND 状态,等
待服务器确认;
第二次握手: : 服务器收到 N SYN 包,必须确认客户的 N SYN ( ACK=J+1 ),同时自己也发送一个 SYN
包( SYN=K ),即 K SYN+ACK 包,此时服务器 V V 状态;
第三次握手: : 客户端收到服务器的 SYN +K ACK 包,向服务器发送确认包 ACK(ACK=K+1) ,此包
发送完毕,客户端和服务器进入 D ESTABLISHED 状态,完成三次握手。
完成三次握手 ,客户端与服务器开始传送数据,
四次分手:
于 由于TCP 连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它
的数据发送任务后就能发送一个 FIN 来终止这个方向的连接。收到一个 FIN 只意味着这一
方向上没有数据流动,一个TCP 连接在收到一个 FIN 后仍能发送数据。首先进行关闭的一
方将执行主动关闭,而另一方执行被动关闭。
(1 )客户端 A 发送一个 FIN ,用来关闭客户 A 到服务器 B 的数据传送。
(2 )服务器 B 收到这个 FIN ,它发回一个 ACK ,确认序号为收到的序号加 1 。和 SYN 一样,
一个 N FIN 将占用一 个序号。
(3 )服务器 B 关闭与客户端 A 的连接,发送一个FIN 给客户端 A 。
(4 )客户端 A 发回 ACK 报文确认,并将确认序号设置为收到序号加 1 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)