python学习笔记--------网络编程01(TCP/IP概述)

首先,学习网络编程,我整理了一个大概的框架

OSI就是很多人所说的七层协议模型,但我们日常运用的还是TCP/IP协议族这种方式

接下来通过TCP/IP的四层协议,来针对性的细化学习

    

网络接口层与OSI参考模型中的物理层数据链路层相对应。网络接口层是TCP/IP与各种LAN或WAN的接口。

  •     网络接口层:也叫链路层
  •         网络接口层在发送端将上层的IP数据报封装成帧后发送到网络上;数据帧通过网络到达接收端时,该结点的网络接口层对数据帧拆封,并检查帧中包含的MAC地址。如果该地址就是本机的MAC地址或者是广播地址,则上传到网络层,否则丢弃该帧。MAC地址,也就是网卡的序列号,每一台的MAC地址是唯一的

    作用:用于定义网络设备的位置,在Windows命令中输入 ipconfig -all 

    物理地址就是MAC地址

  •     网际层

            网际层提供了基于无连接的数据传输、路由选择、拥塞控制和地址映射等功能,这些功能主要由4个协议来实现:IP、ARP、 RARP和ICMP,说到IP,就要提一下IP的私有和公有

        私有IP

            一般来说就是局域网,例如:

        A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
        B:172.16.0.0~172.31.255.255即172.16.0.0/12
        C:192.168.0.0~192.168.255.255 即192.168.0.0/16


        公有IP

            连接万维网(互联网),例如:

        A: 0.0.0.1-- 9.255.255.255 & 11.0.0.0--126.255.255.255
        B:128.0.0.0--172.15.255.255 & 172.32.0.0--191.255.255.255
        C: 192.0.0.0-- 192.167.255.255 &192.169.0.0--223.169.255.255

        假设我们在家里通过路由器连接万维网,但想让父母朋友都可以连接,那么此时,就需要路由器解析出公有 IP和私有IP了,后面我会提到路由器具体的简单实现原理

        在IP协议提供数据分组传输、路由选择等功能,ARP和RARP提供逻辑地址与物理地址映射功能,ICMP协议提供网络控制和差错处理功能。

  • 传输层

        传输层分为UDP和TCP两种方式

  • TCP是一种面向连接的可靠传输协议,为什么它可靠,因为通过三次握手,四次挥手来实现连接对象,保证了数据传输的稳定性
  • udp直观来说就是一种广播,优势就是效率高,但它的数据不稳定

    TCP和UDP的区别我用现实生活的例子表示

        TCP就是打电话,首先需要有一部手机,有手机号,跟朋友打电话需要拨号连接,等对方接通才能实现我跟朋友之间的交流

        UDP就是写信,知道对方的地址信息,我会找一个邮局,或者古时候的飞鸽传书,但可能会有不确定的因素导致信息的丢失,比如鸽子被人打下来红烧。。。。

  • 应用层

    应用层就是应用程序的协议,比较常见的典型就是HTTP协议,什么叫做协议?

    我觉得它实际上就是一种规定,就如同我们国家说汉语,美国说英语,日本说日语,为了实现数据的共享,需要指定一个规定来统一管理,所以,对于HTTP协议,我的理解就是基于TCP协议的一种客户端向服务器共享数据间的规定,当然不同的应用程序都有自己独有的协议,比如QQ,微信,迅雷。如果没有协议,那么QQ发送的信息可能会在微信中显示,那就乱套了。(这是我自己学习网络编程的一些个人见解,如果有理解错误,不到位的地方,希望各位大神可以告诉我)

猜你喜欢

转载自blog.csdn.net/Li_G_yuan/article/details/80172249