文章目录
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 组成的二进制数字进行网络通信,但是,网络通信时,传输的数据由很多种,有:图片,视频,文本等,不同类型的数据,格式也不同,在网络传输时,如何识别这是一个图片还是文本呢?所以就需要协议来规定数据的格式。
概念
网络协议,是在网络数据数据传输时,在经过所有网络设备时,都必须遵守的一组约定,如,通过哪种格式建立连接,按照哪种格式去识别传输过来的数据,只有遵守这组约定,计算机之间才能互相通信交流。
五元组
五元组由五个成分组成,是一次通信过程中不可缺少的信息
五元组的组成
- 源IP:标识源主机
- 源端口号:标识在源主机中,本次通信,发送数据的进程
- 目标IP:标识目标主机
- 目标端口号:标识在目标主机中,本次通信,接收数据的进程
- 协议类型:标识发送数据的进程和接收数据的进程,双方之间约定的数据格式