网络通信

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. 推送代码到GitHub上的两种方式

       要想将本地Git上代码提交到GitHub可以使用两种协议进行提交,分别使用HTTPS和SSH两种协议,如下所示. 当使用HTTPS协议时,每次推送的时候都需要输入GitHub平台的用户名密码. ...

  2. CentOS 6 各种启动文件损坏及修复

    stage1 mbr的破坏和恢复 清空mbr 前446字节 dd if=/dev/zero of=/dev/sda bs=1 count=446 如果没有挂载启动光盘,会显示这样 如果启动前挂载了光盘 ...

  3. php中的html元素

    我们先看下面的代码 form2.php <html> <head><title>greetins eartyling</title></head& ...

  4. jwplayer视频--不兼容IE8

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

  5. oracle imp 报12154错误解决办法

    imp test/test@orcl file=/backup.dmp full=y --报错   imp test/test@127.0.0.1/orcl file=/backup.dmp full ...

  6. Codeforces-19D Point---线段树

    题目链接: https://cn.vjudge.net/problem/CodeForces-19D 题目大意: n个操作,在200000*200000的平面上加删点 find 严格在坐标右上角,x最 ...

  7. [19/04/27-星期六] GOF23_结构型模式(装饰模式、外观模式)

    一.装饰模式(decorator) 职责:动态的为一个对象增加新的功能. 是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能.使用对象的关联关系代替继承关系,更加灵活,避免类体系的膨胀 ...

  8. forward_list详解

    forward_list在头文件<forward_list>中,与list类似,区别就是list时双链表,forward_list是单链表,forward_list只支持前向迭代.在访问第 ...

  9. PHP+JQUERY+AJAX上传、裁剪图片

    PHP部分 /*图片上传*/ public function upload1(){ $file = $_FILES['file']; $upload = new \Think\Upload();// ...

  10. 客户端对象模型之Excel数据导入到列表

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...