Python学习 :网络通信要素
网络通信
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学习 :网络通信要素的更多相关文章
- Python学习---网络编程 1217【all】
OSI七层模型: 物理层, 数据链路层, 网络层,传输层,会话层,表达层,应用层 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:I ...
- Python学习笔记总结
目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...
- python学习第一讲,python简介
目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- Python 学习参考书目推荐
Python 学习,参考书目推荐 前言 好的技术书籍可以帮助我们快速地成长,大部分人或多或少地受益于经典的技术书籍.在「Python开发者」微信公号后台,我们经常能收到让帮忙推荐书籍的消息.这类的问题 ...
- Python学习系列(一)(基础入门)
Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频 ...
- Python学习(二)Python 简介
Python 简介 官方指南及文档 Python2.7官方指南(中文版):http://pan.baidu.com/s/1dDm18xr Python3.4官方指南(中文版):http://pan.b ...
- 干货来了!python学习之重难点整理合辑1
关于装饰器.lambda.鸭子类型.魔法函数的理解仍存有困惑之处,趁周末有时间温故,赶紧去自学了解下相关知识. 1.装饰器是什么: 很多初学者在接触装饰器的时候只做到了肤浅的了解它的概念.组成形态.实 ...
- Python面向对象三要素-多态
Python面向对象3要素-多态 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 OCP原则:多用“继承”,少修改. 继承的用途:在子类上实现对基类的增强,实现多态. ...
- Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
随机推荐
- python之复数
#coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1 ...
- Visual studio 2015已经停止工作无限重启
今天遇到一个问题,某个文件在撤销的时候vs报错,然后提示到路径 “C:\Users\username\AppData\Roaming\Microsoft\VisualStudio\14.0\***.x ...
- awk单行脚本快速参考
AWK单行脚本快速参考 2008年4月28日编辑: Eric Pement eric [at] pement.org 版本 0.26翻译: 董一粟 yisudong [at] gmail.com 最新 ...
- [COGS 2064]爬山
2064. 爬山 ★☆ 输入文件:mountain.in 输出文件:mountain.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 球有一天走在街上. 一个健 ...
- U-Mail:邮件营销如何大量获取并筛选有效地址
工欲善其事必先利其器,在所有的邮件推广中,最基础的工作就是收集到足够多的有效邮箱地址,俗话说韩信将兵多多益善,邮箱地址越多,也就意味着潜在的转化为消费者的数量众多,但是如果大量滥竽充数的地址被搜罗进来 ...
- SQL简单基础(2)
查询功能是SQL语句最重要的功能,查询操作也是数据库系统最常用的操作.学习SQL查询语句,首先要弄清楚的是查询语句用到的关键字以及查询语句的执行顺序.SQL语言的一个特点在于,它是一种声明式语句,执行 ...
- android--eclipse闪退,无法启动
解决方法: 删除文件:[workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
- css3实现 鼠标经过li时动态画边框(jq库导航)
<!doctype html> <html> <head> <meta charset="utf-8" /> <meta na ...
- Web App, Native APP,Hybird App 介绍
一.Web App 这个主要是采用统一的标准的 HTML,JavaScript.CSS 等 web 技术开发. 用户无需下载,通过不同平台 的浏览器访问来实现跨平台, 同时可以通过浏览器支持充分使用 ...
- js oc与线程
分属不同的线程 //定义需要暴露给js的内容,这里我们只暴露personName和queryPersonName接口 @protocol PersonProtocol <JSExport> ...