socket UDP、TCP发送接收数据

本文介绍了计算机网络的基础概念,包括IP地址、公网与内网IP、NAT技术以及端口。接着详细讲解了socket和TCP/IP协议,对比了UDP和TCP的区别。并展示了UDP和TCP的发送与接收数据的步骤,包括创建套接字、发送和接收数据、关闭套接字等。此外,还讨论了TCP的三次握手和四次挥手过程,以及TCP和UDP在可靠性和效率方面的差异。
摘要由CSDN通过智能技术生成

基础计算机网络概念

两台电脑的通信

  • 两台电脑之间的通信类似于写信,数据通过网线传输到服务器,在经过服务器传输给目标电脑,其中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,这类端口,不会固定的分配,是留给计算机用来临时动态的分配的,也是我们的应用程序通常会临时占用的端口。
    • 我们可以
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值