网络编程之基础

1.来源

想要两个程序(不同的电脑中)之间传输内容,这个时候出现了网络传输。

2.软件开发的架构

第一种是应用类:qq,微信是属于需要安装的桌面应用

第二种是web类:比如百度,知乎使用浏览器就可以直接使用的应用

两种分类对应了两种软件开发的架构:

2.1  C/S即client与server:客户端与服务端架构,这种架构也是从用户层面

 

2.2B/S架构

B/S即:browser与Server:浏览器端与服务端架构,这种架构是从用户层来划分的。

Browser浏览器是一种client客户端,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就可以增删改查。

        以太网:局域网与交换机

ip地址与ip协议

  • 规定网络地址的协议叫ip协议,它定义的地址称为ip地址,广泛采用v4版本即ipv4,它规定的网络地址由32位2进制表示
  • 范围0.0.0.0-255.255.255.255
  • 一个ip地址通常写成四段十进制数,例:172.16.10.1

mac地址

每块网卡出厂时被烧制的世界唯一mac地址长度为48位2进制,通常由12位16进制数表示(前6位是厂商编号,后6位是流水线号)

arp协议--插叙ip地址和mac地址的对应关系

地址解析协议,即arp,是根据ip地址获取物理地址的一个tcp/ip协议。

主机发送消息时将包含目标ip地址的arp请求广播到网络上的所有主机,并接受返回消息,以此确定目标的物理地址。

收到返回消息后将该ip地址和物理地址存入本机arp缓存中并保留一定时间,下次请求是直接查询arp缓存以节约资源

广域网和路由器

也就是两个不同的局域网通过路由器相连。而每个局域网中机器是通过交换机传输的。

子网掩码

指的是表示子网络特征的一个参数,形式上等于ip地址,也是一个32位二进制数字,网络部分全为1,主机部分全为0(这个部分并不是一成不变的,有可能主机部分占24位而网络部分占8位)。

如何判断任意两个ip地址是否处于同一个子网络:方法是将两个ip地址与子网掩码分别进行AND运算(两个数都为1,运算结果为1,否则为0),然后比较结果是否一样,不是就表明不是同一个网络。

ip协议的作用有两个,1.为每台计算机分配ip地址,2.确定哪些地址在同一个子网络。

 1 比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,
 2 
 3 172.16.10.1:10101100.00010000.00001010.000000001
 4 255255.255.255.0:11111111.11111111.11111111.00000000
 5 AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
 6 
 7  
 8 
 9 172.16.10.2:10101100.00010000.00001010.000000010
10 255255.255.255.0:11111111.11111111.11111111.00000000
11 AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
12 结果都是172.16.10.0,因此它们在同一个子网络。
根据子网掩码判断两个ip是否在同一个子网络

端口

端口指:计算机里提供的各种网络服务,各种软件或者浏览器类似的分别获得不同的端口,我们的另外主机想找到这个机器的服务只能通过ip地址+端口号。

tcp协议与udp协议区别:

TCP协议--传输控制协议,提供面向连接,可靠的字节流服务。客户端和服务端交换数据前,必须先建立一个TCP连接,才能传输数据,TCP提供超时重发,丢弃重复数据,检验数据,流量控制,保证数据能传送到。

UDP协议--用户数据包协议,是一个简单的面向数据包的运输层协议。不提供可靠性,不保证能到达,由于没有建立连接,且没有超时重发等机制,传输很快。

每层运行常见物理设备

每层运行常见的协议

猜你喜欢

转载自www.cnblogs.com/13507215809qwer-/p/9651144.html