网络
网络是有若干节点(计算机,交换机,路由器等)和连接各个节点的链路组成。
互联网
将不同的网络连接起来就构成了互联网。
ip地址
在网络中ip地址可以唯一标识一台主机,ip地址可改变。
ip地址为了方便寻址,了解主机的位置,其在结构上包含了网络号和主机号。在同一网络中的所有主机网络号相同,主机号不同。
ip地址现在有两种类型:
ipv4
32位无符号整形,每一位的表示范围是0-255,因此形式类如:"xxx.xxx.xxx.xxx"
ipv6
128位无符号整型,形式类如:"xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx"
MAC地址
在局域网中,硬件地址称为物理地址又称为MAC地址,长度为48位,是固化在计算机适配器中的地址(不可变,除非更换适配器)。
MAC地址也可以唯一标识一台计算机,在两台相邻的主机通讯中就是使用MAC地址。
MAC地址无法表示物理地址(网络)发生的变化,不便于寻址
端口号
端口号port用来在一台主机上标识一个网络通讯进程。
因此我们获取了ip+port就可以实现不同主机之间进程的通讯。
端口号port可以唯一标识一个进程,那可不可以用pid来代port呢?
答:不行,假如我们今天创建一个进程,它的pid是1234,当我们明天再运行相同的程序时,它的pid不一定是1234了。但是我们设定这个进程的端口号为6000,当我们明天再运行这个程序时,端口号依然是6000。因此不能用pid来代替端口号。
TCP/IP五层模型
应用层:
复杂应用程序之间的数据沟通。
传输层:
负责进程之间的数据传输
典型协议:TCP/UDP协议---包含了端口信息
网络层:
负责不相邻节点之间的数据传输
典型协议:IP协议---包含了IP地址信息。
数据链路层:
负责相邻设备之间的数据传输
物理层:
负责物理光电信号的传输
网络应用程序通讯流程
字节序列
cpu对内存中数据以字节为单位进行存取的顺序。
注意:数据的存储方式有大端和小端两种存储方式
小端:低位字节存放在内存低地址端
大端:高位字节存放在内存高地址端
例如存放0x12345678
主机字节序列:
这台主机cpu对内存中数据以字节为单位进行存取的顺序(大端或小端)
网络字节序列:
两台不同主机在传输数据时,有可能使用不同的字节序列,因此会有冲突。
因此规定,数据传输到网络时使用大端字节序列,因此把大端字节序列称为网路字节序列,对方在接收到数据后可以根据自己的序列进行转换。