网络通信

OSI 模型

- 定义了计算机互联的标准,是设计和描述计算机网络通信的基本框架

- 把网络通信的工作分为7层,分别是物理层、链路层(数据网络层)、网络层、传输层、会话层、表示层和应用层

网络通信的三要素

- IP 地址

1.用来识别网络上一台独立的主机

2.IP地址 = 网络地址 + 主机地址(网络号:用于识别主机所在的网络;主机号:用于识别网络中的主机)

3.特殊的IP地址:127.0.0.1(本地回环地址、保留地址、点分十进制)可用于简单的测试网卡是否故障;表示主机

- 端口号

1.为了标识应用程序,所以给这些网络应用程序都用数字进行标识,这些数字即为端口

- 传输协议

1.通讯的规则,例如:TCP、UDP协议等

两种不同的传输协议:

- UDP 协议(User Datagram Protocol 用户数据报协议)

面向无连接,传输数据之前源端和目的端不需要建立连接

发送出去的数据不一定会接收得到

传输速率快、效率高

- TCP 协议(Transmission Control Protocol传输控制协议)

面向连接,传输数据之前需要建立连接

在连接过程中进行大量的数据传输

安全可靠的传输协议

传输速度慢、效率低

我们可以通过图片来直观地感受一下 TCP 与 UDP 协议之间的区别

- TCP 与 UDP 的主要区别

                1.TCP是面向连接的;UDP是无连接的

                2.TCP的每个连接都是点对点的,即一对一进行;UDP的连接支持一对一,一对多,多对一以及多对多

                3.TCP的传输比较安全可靠;UDP的传输则不那么可靠

                4.TCP的传输比较较慢,但可以保证数据的顺序;UDP的传输速度较快,但不可保证数据的顺序

                5.在对系统资源的要求上:TCP占用较多的系统资源;UDP只需少量的系统资源

粘包现象

在同时执行多条命令之后,得到的结果很可能只有一部分数据,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种现象就是粘包。

如何解决粘包问题?

          1.获取要传输的数据的大小,先传到客户端,接着再发送数据

          2.以数据的大小为基准,循环地接收数据直至获取完毕

Python学习 :网络通信要素的更多相关文章

  1. Python学习---网络编程 1217【all】

    OSI七层模型: 物理层, 数据链路层, 网络层,传输层,会话层,表达层,应用层 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:I ...

  2. Python学习笔记总结

    目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...

  3. python学习第一讲,python简介

    目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...

  4. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  5. Python 学习参考书目推荐

    Python 学习,参考书目推荐 前言 好的技术书籍可以帮助我们快速地成长,大部分人或多或少地受益于经典的技术书籍.在「Python开发者」微信公号后台,我们经常能收到让帮忙推荐书籍的消息.这类的问题 ...

  6. Python学习系列(一)(基础入门)

    Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频 ...

  7. Python学习(二)Python 简介

    Python 简介 官方指南及文档 Python2.7官方指南(中文版):http://pan.baidu.com/s/1dDm18xr Python3.4官方指南(中文版):http://pan.b ...

  8. 干货来了!python学习之重难点整理合辑1

    关于装饰器.lambda.鸭子类型.魔法函数的理解仍存有困惑之处,趁周末有时间温故,赶紧去自学了解下相关知识. 1.装饰器是什么: 很多初学者在接触装饰器的时候只做到了肤浅的了解它的概念.组成形态.实 ...

  9. Python面向对象三要素-多态

    Python面向对象3要素-多态 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.多态概述 OCP原则:多用“继承”,少修改. 继承的用途:在子类上实现对基类的增强,实现多态. ...

  10. Python面向对象三要素-继承(Inheritance)

    Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...

随机推荐

  1. CentOS随笔 - 1.虚拟机VMware安装CentOS7系统

    前言 转帖请注明出处: http://www.cnblogs.com/Troy-Lv5/ 需要安装CentOS首先你得下载安装镜像文件(地址: https://www.centos.org/downl ...

  2. SqlServer数据库(可疑)的解决办法

    当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法, 打开数据库里的Sql 查询编辑器窗口,运行以下的命令. // 1.使用指定值强制重新配置:(1.0表示为真假) sp_configure ...

  3. Ionic控件之——按钮(Button)

    Ionic提供丰富的按钮特性,足以满足大部分的按钮实现需求. 一.HTML实现一个简单按钮: <button class="button"> 我是按钮 </but ...

  4. 关于动态门户WEB博雅互动的源代码(HTML+CSS+javascript)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 外部主机无法访问IIS发布的网站

    在IIS中发布网站,在本地可以直接访问,但是其他主机不能访问改发布的网站.   此问题一般是IIS的配置或者防火墙的配置的原因.     如果禁用了以下防火墙入站规则会导致外部主机无法访问本地发布的网 ...

  6. 沉淀再出发:Spring的架构理解

    沉淀再出发:Spring的架构理解 一.前言 在Spring之前使用的EJB框架太庞大和重量级了,开发成本很高,由此spring应运而生.关于Spring,学过java的人基本上都会慢慢接触到,并且在 ...

  7. December 14th 2016 Week 51st Wednesday

    Everything has its time and that time must be watched. 万物皆有时,时来不可失. Everything has its time, and I r ...

  8. PHP版本解密openrtb中的价格

    Decrypt Price Confirmations 原文地址 https://developers.google.com/ad-exchange/rtb/response-guide/decryp ...

  9. Centos7安装Redis4.0.8

    今天安装了CentOS7 1708 在安装redis时报错  make[1]: *** [adlist.o] 错误 127 因为Redis是C实现的,需要gcc来进行编译,所以原因是系统未安装gcc, ...

  10. Django中模型(四)

    Django中模型(四) 五.创建对象 1.目的 向数据库中添加数据.当创建对象时,Django不会对数据库进行读写操作,当调用save()方法时,才与数据库交互,将对象保存到数据库中 2.注意 __ ...