网络编程基础知识(待更新补充)

1.C/S架构(client/server)

  即客户端(泛指客户端程序exe)与服务端架构

2.B/S架构(Browser/Server)

  浏览器端与服务器端架构

 3.广播

  主机之间‘一对所有’的通讯模式,网络对其中每一台主机发出的信号无条件复制并转发,所有主机都可无条件接收

  特点:一对多,不用考虑路径,网络成本低

  应用领域:有线电视网,它实质接收所有频道的信号,但只将一个频道的信号还原成画面

  PS:数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机

 4.ip地址与ip协议(四段十进制数)

  规定网络地址的协议被称为ip协议,它所定义的地址被称为ip地址,广泛采用的是v4版本,规定网路地址由32位2进制表示

  范围:0.0.0.0——255.255.255.255

  一个ip地址通常被写成四段十进制数,如175.152.154.022

  IP协议作用:为每一台计算机分配IP地址;确定哪些地址在同一个子网格

5.mac地址

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

6.ARP协议(地址解析协议)

  通过IP地址找到MAC地址的过程,交换机只能看懂物理(mac)地址

  将消息(包含IP地址和MAC地址的ARP请求)广播到网络上的所有主机上,并接受返回信息,以此确定目标MAC地址

7.路由器(跨局域网之间的通信-路由表)

  链接因特网中各个局域网,广域网的设备,它会根据信道情况自主选择和设定路由,以最佳路径,按顺序发送信号

  路由和交换机之间主要区别就是交换机发生在OSI模型第二层(数据连接层),而路由发生在第三层(网格层)

  网关IP,内置在路由器中

路由器和交换机的区别:

  1:交换机:是负责内网里面的数据传递(arp协议)根据MAC地址寻址

   路由器:在网络层,路由器根据路由表,寻找该ip的网段

  2:路由器可以处理TCP/IP协议

  3:路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。

   交换机可以把很多主机连起来,这些主机对外各有各的IP。

  4:交换机是做端口扩展的,也就是让局域网可以连进来更多的电脑。

   路由器是用来做网络连接,也就是;连接不同的网络

8.局域网

  局域网(local area network),简称LAN,指在某一区域由多台计算机互联而成的计算机组,属于封闭型网络

  作用:可以实现文件管理,应用软件共享,打印机共享等

9.子网掩码(跟网关有关,主要用来查看机器是否在同一局域网内)

  它是表示子网特征的一个参数,在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全是1,主机部分全是0

  如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0

  知道了子网掩码,就能判断两个IP地址是都在同意各自网格

比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,

172.16.10.1:10101100.00010000.00001010.000000001
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
 
172.16.10.2:10101100.00010000.00001010.000000010
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
结果都是172.16.10.0,因此它们在同一个子网络。

10.端口(port)(网络访问必须经过端口,用于应用程序之间的通信)

  端口范围:0-65535

  在同一台机器上,同一时刻每一个端口只能为一个运行中的程序提供服务

  只有用到互联网通信的程序才会用到端口的概念

  通过IP和端口,可以找到全世界唯一的一台电脑上的一个程序

11.域名解析(DNS)

  在互联网上,所有的地址都是ip地址,现阶段主要是IPv4(比如:110.110.110.110)。

  但是这些ip地址太难记了,所以就出现了域名(比如http://baidu.com)。

  域名解析就是将域名,转换为ip地址的这样一种行为。

12.tcp协议和udp协议 

TCP协议:

  当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

  这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止

  特点:可靠安全,面向连接,但是速度慢

  应用:web浏览器,电子邮件,文件传输程序等

UDP协议:

  一种简单的面向数据包的运输层协议,它只是把应用程序传给IP层的消息发送出去,但无法保证对方可以接收

   特点:不可靠的,无连接的服务,面向数据包,但是速度快,且不会长期占用系统链接资源

  应用:域名系统 (DNS);视频流;IP语音(VoIP)

13.TCP三次握手和四次挥手

  TCP三次握手:通过三次握手在两个服务之间建立了双相通信连接(全双工)

  • A向B发起建立连接请求:A——>B;
  • B收到A的发送信号,并且向A发送确认信息:B——>A;
  • A收到B的确认信号,并向B发送确认信号:A——>B

  第一次握手,B可以知道A能发送数据,第二次握手,A可以知道B能发送数据,根据第一次握手和第二次握手,A可以知道B能接收收据。第三次发送数据,B可以知道A能接收数据

  TCP四次挥手通过四次挥手断开两个服务之间的连接

  • A向B发起请求,表示A没有数据要发送了:A——>B;
  • B向A发送信号,确认A的断开请求请求:B——>A;
  • B向A发送信号,请求断开连接,表示B没有数据要发送了:B——>A;
  • A向B发送确认信号,同意断开:A——>B

  二次和三次挥手不能同时发送,因为此时A虽然不能再发送数据,但是还可以接收数据,B可能还有数据发送给A

14.OSI七层协议(互联网协议)

  即互联网协议,互联网核心就是由一堆协议(标准)组成,所有计算机都是通过一套标准去接收和发送请求

  它根据功能可以分为osi七层或tipip五层或tipip四层 

  应用层:在Python程序内将信息编码

  传输层:在此确定当前服务端口和传输使用(TCP或UDP)协议

  网络层:确定IP地址

  数据连接层:获取对方MAC地址

  物理层:网卡,网线

 

每层运行物理设备(对应硬件):

  物理层:与电信号的传输相关

  数据链路层:和MAC地址相关

  网路层:和IP地址相关           # 三层交换机:兼备交换和路由功能,既能识别IP地址,也能识别MAC地址

  传输层:和端口相关        

 

每层运行常见协议:

 

网络编程具体介绍链接:http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label5

原文地址:https://www.cnblogs.com/LearningOnline/p/8981190.html