socket UDP、TCP发送接收数据

基础计算机网络概念

两台电脑的通信

  • 两台电脑之间的通信类似于写信,数据通过网线传输到服务器,在经过服务器传输给目标电脑,其中ip地址是唯一标识,用来识别你要发送的对象,在写信中ip地址就相当于我们的通信地址。

IP地址与协议

  • 规定网络地址的协议称为ip协议,它定义的地址为ip地址,目前广泛采用的v4版本即ipv4,其由32位2进制表示。
  • 一个ip地址通常写为四段十进制数
  • 范围为从0.0.0.0到255.255.255.255
  • 我们可以通过ipconfig命令来查看本机的网卡信息,;Linux的命令为ifconfig在这里插入图片描述
  • 上图中通过ipconfig命令可以查看本机的ip地址,有v6和v4两个版本,一般常用的是v4的地址
  • ip地址版本
    • ipv4
      • 广泛在用
      • 版本为v4
      • 地址位数为32位
      • 地址有限,几乎全部耗尽
    • ipv6
      • 试验阶段,作为下一阶段的IP地址
      • 版本为v6
      • 地址位数为128位
      • 因为增加了地址位数,所以拥有很多种排列组合,号称可以为全世界的每一粒沙子编上一个地址

公网IP和内网IP

  • 公网IP:即互联网IP,是ipv4协议分配的有效的ip地址。
  • 内网IP:即局域网IP,是在一个局域网里随机分配得到的ip地址。
  • 之所以出现公网IP和内网IP是因为,ipv4的地址是有限的,而为了应对地址的不足,开发出了内网IP,将一个公司、学校或者家庭看作是一个局域网,当其内部需要上网时,给每个设备都分配一个ipv4地址显然是不现实的,因此目前的做法是将公司的公网IP看作一个网关,由网关给局域网内部的设备随机分配虚拟IP地址,这些虚拟ip地址用来识别具体是哪个设备,并通过NAT转换实现内网访问外网的能力。
  • 内网的主要作用
    • 共享传输信道:简单地理解就是不需要每台电脑一个外网IP地址。
    • 传输速率高:内网之间的电脑因为没有外网网络拓扑的复杂性,所以互相通信的网络可以很快。
    • 误码率低:因为通信距离很近,所以误码率很低,换句话说就是网络很稳定。

NAT技术

  • 上面介绍了公网IP和内网IP,我们可以知道内网IP其实是一个随机分配的地址,也就是说它其实是不存在的,不被认可的,那么如何实现内网访问外网的功能呢,将由NAT技术来实现。
  • 简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。
  • 比如一个公司的IP地址为192.168.1.1,这是它的网关,其内部有三台电脑,内网分配的ip地址分别为192.168.1.2,192.168.1.3,192.168.1.4,当其中一台电脑要访问外网时,NAT技术将电脑的ip地址加端口映射成网关的IP地址加端口,即通过网关去访问外网,既解决了ip地址紧缺的问题,又保证了用户的使用。

端口介绍

  • 当我们使用网络进行通信时,除了知道对方的ip地址之外,我们还需要知道用什么软件进行通信,那么如何识别我们通过哪种软件进行通信呢,这就是端口的作用。
  • 通常每个应用程序都会占用一个端口,同一时间只会有一个程序占用一个端口,这样就是的端口具有唯一性,是的我们的电脑可以通过端口来识别具体是哪个应用程序在进行通信。
  • 我们这里举一个简单的例子,当我们取银行取钱时,我们可以把银行想象成一个主机,当我们进门之后,会有服务人员问我们要办什么业务,然后会告诉我们取钱去三号窗口,这样我们就不会走错,而窗口就相当于网络里的端口。
  • 端口分为知名端口和动态端口
    • 知名端口的范围是0-1023,这些端口通常是固定的分配给一些公认的服务,例如80端口分配给http服务,21端口分配给FTP服务。
    • 动态端口的范围是1024-65535,这类端口,不会固定的分配,是留给计算机用来临时动态的分配的,也是我们的应用程序通常会临时占用的端口。
    • 我们可以
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
TCP/UDP套接字调试工具是一种用于发送数据的工具,可以帮助开发人员调试网络应用程序。它提供了一种简单而有效的方式来测试和验证套接字通信。 使用这种调试工具,首先需要指定目标服务器的IP地址和端口号。对于TCP套接字,我们可以使用工具建立一个TCP连接。一旦连接建立,我们就可以使用工具来发送数据到目标服务器。我们可以发送各种数据,如字符串、文件、二进制数据等。发送数据时,我们可以指定数据的长度和频率,以模拟实际的网络环境。 对于UDP套接字,我们可以直接指定目标服务器的IP地址和端口号。然后,我们可以使用工具发送UDP数据包到目标服务器。我们可以设置数据包的内容、长度和频率,以便进行各种测试和验证。 在发送数据之前,我们还可以设置套接字的选项,如超时时间、缓冲区大小等。这些选项可以帮助我们模拟各种网络条件,并检查应用程序对不同条件的响应。 在发送数据后,工具提供了一些实用的功能来验证数据是否正确到达目标服务器。我们可以查看发送数据接收数据,并比较它们的差异。我们还可以查看套接字的状态,如连接状态、缓冲区状态等。如果发生错误,工具还可以提供错误信息,以帮助我们快速定位和解决问题。 综上所述,TCP/UDP套接字调试工具是一种非常有用的工具,可以帮助开发人员调试网络应用程序。它提供了一种便捷的方式来发送数据,并验证数据是否正确到达目标服务器。使用这种工具,我们可以更加高效地调试和优化我们的网络应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值