首页 > 其他 > 详细

网络基础

时间:2019-12-09 18:40:48      阅读:95      评论:0      收藏:0      [点我收藏+]

什么是协议(networking protocol)?

拿两个人说话为例,协议就是双方约定好都使用中文交流,或者都使用英语交流。

协议,网络协议的简称,networking protocol网络协议是通信计算机双方必须共同遵从的一组约定。

如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。

 

  • OSI网络七层协议Open System Interconnection(开放式系统互联参考模型)

 

技术分享图片

技术分享图片

咱们按照5层协议来讲解下每层的作用(从下往上的顺序)

1、物理层

  把01组成的电信号发送出去。

2、链路层

  网卡上有厂商烧录的MAC地址

3、网络层

  开始有了IP、子网掩码和网关

 

IP地址,可以划分子网
当前地址:192.168.1.125
子网掩码:255.255.255.0
目标地址:192.168.1.134
  当前地址: 11000000 10101000 00000001 01111101
  子网掩码: 11111111 11111111 11111111 00000000
  与后结果: 11000000 10101000 00000001 00000000

  目标地址: 11000000 10101000 00000001 10000110
  子网掩码: 11111111 11111111 11111111 00000000
  与后结果: 11000000 10101000 00000001 00000000
判断目标地址是否和当前地址是同一子网
将IP地址和子网掩码转换为01组成的8位二进制数,然后做与操作。与后的结果一样,说明在同一子网内。
def get_bin_lst(ip):
    """
    将IP地址和子网掩码转换为01组成的8位二进制数
    :param ip: ip地址
    :return: 二进制数
    """
    return list(map(lambda s: format(int(s), "08b"), ip.split(".")))


def get_and_result(ip, subnet):
    """
    将IP地址和子网掩码转换为01组成的8位二进制数,然后做与操作
    :param ip: ip地址
    :param subnet: 子网掩码
    :return:
    """
    lst_ip = get_bin_lst(ip)
    lst_subnet = get_bin_lst(subnet)
    result = ""
    for i in range(4):
        res = ""
        for j in range(8):
            res += lst_ip[i][j] and lst_subnet[i][j]
            if j == 7:
                result += res + " "
    return result


ip = "192.168.1.125"
subnet = "255.255.255.0"
target = "192.168.1.134"
ip_res = get_and_result(ip, subnet)
target_res = get_and_result(target, subnet)
print(ip_res)
print(target_res)
执行结果:
11111111 11111111 11111111 00000000 
11111111 11111111 11111111 00000000 

与后的结果一样,说明在同一子网内。
 

 

4、传输层

  端口port

5、应用层

  

 

 

 

 

 

网络基础

原文:https://www.cnblogs.com/lilyxiaoyy/p/12012317.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!