网络通信基础

文章目录

IP地址

概念

IP地址主要用于定位主机或者其他网络设备在网络上的具体位置;

就像我们在买快递时,都会填写一个地址,快递员就会把快递送到指定的地址处

IP地址格式

在网络上,IP地址是一个32位的二进制数标识,然后按照每8位二进制数分成一组,共分成四组,中间用 点 相连,但是,这样的32个数字太长了,不容易记忆,所以,就用"点分十进制"的方式标识,即 q.w.e.r 这样的格式,其中的 q w e r 都是 0~255 之间的数字;

例如:192.168.1.1

特殊IP地址:127.0.0.1,这个IP地址是一个本机环回IP,即本机与本机之间的网络通信,通常用于测试我们写的网络通信代码是否符合业务;

端口号

概念

区分一个主机上的不同的进程(程序)

例如:QQ音乐,我们想要听歌时,QQ音乐就需要通过网络加载出来歌曲数据,所以QQ音乐就需要联网,同时呢,当通过网络将歌曲数据传过来时,具体是交给了那个程序呢?所以就需要用一个端口号来标识,通过端口号确定是哪个程序的数据
例如,在送快递时,不仅要指定收货地址,还要指定收货人,这样才能将快递成功交给买家,所以在通信过程中,IP 和 端口号 往往是"一对"

格式

端口号使用两个字节范围内的数字表示,所以16二进制数的最大值就是65545,所以也就是0~65535范围的数字,

注意事项

一个端口号只能被一个进程绑定,但是一个进程可以绑定多个端口号

进程绑定一个端口号后,fork一个子进程,可以实现多个子进程也绑定这个端口号,但是,不同进程之间,不能绑定同一个端口号
1~1023 为知名端口号,这个范围的端口号,系统留作了特殊用途,咱们自己写的程序尽量不要占用,例如:

22端口 -> 预留给SSH服务器绑定SSH协议

21端口-> 预留给FTP服务器绑定FTP协议

23端口-> 预留给Telnet服务器绑定Telne协议

80端口-> 预留给HTTP服务器绑定HTTP协议

443端口-> 预留给HTTPS服务器绑定HTTPS协议
以上的知名端口号只是说通常都用于绑定了知名的协议,但是,它们也是可以使用1024 ~ 65535 之间的数字

这就好比坐飞机的头等舱和经济舱,头等仓的人也同样可以坐到经济仓,但是经济仓的人不能去坐头等舱

认识网络协议

为什么要有协议?

网络传输时,本质是通过光/电信号进行传输的,例如,低电平表示1,高电平表示0,或者高频光信号表示1,低频光信号表示0,由这样一组 0 或 1 组成的二进制数字进行网络通信,但是,网络通信时,传输的数据由很多种,有:图片,视频,文本等,不同类型的数据,格式也不同,在网络传输时,如何识别这是一个图片还是文本呢?所以就需要协议来规定数据的格式。

概念

网络协议,是在网络数据数据传输时,在经过所有网络设备时,都必须遵守的一组约定,如,通过哪种格式建立连接,按照哪种格式去识别传输过来的数据,只有遵守这组约定,计算机之间才能互相通信交流。

五元组

五元组由五个成分组成,是一次通信过程中不可缺少的信息

五元组的组成

  1. 源IP:标识源主机
  2. 源端口号:标识在源主机中,本次通信,发送数据的进程
  3. 目标IP:标识目标主机
  4. 目标端口号:标识在目标主机中,本次通信,接收数据的进程
  5. 协议类型:标识发送数据的进程和接收数据的进程,双方之间约定的数据格式
相关推荐
guts°26 分钟前
10-ACL技术
网络·网络协议
心情好的小球藻27 分钟前
Python应用进阶DAY9--类型注解Type Hinting
开发语言·python
群联云防护小杜35 分钟前
深度隐匿源IP:高防+群联AI云防护防绕过实战
运维·服务器·前端·网络·人工智能·网络协议·tcp/ip
惜.己38 分钟前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
Y4090011 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
_丿丨丨_6 小时前
XSS(跨站脚本攻击)
前端·网络·xss
古月-一个C++方向的小白6 小时前
C++11之lambda表达式与包装器
开发语言·c++
沐知全栈开发6 小时前
Eclipse 生成 jar 包
开发语言
一只栖枝7 小时前
HCIA-Security 认证精讲!网络安全理论与实战全掌握
网络·web安全·网络安全·智能路由器·hcia·it·hcia-security
FileLink跨网文件交换7 小时前
文件摆渡系统十大软件|文件摆渡系统如何构建网络安全呢?
网络