Python编程(01)----网络编程之TCP/IP/UDP/Port等知识讲解
一、首先明白什么是 UDP/TCP
1) 相同(目的一致):都是要完成PC之间的通信。
2) 不同:
TCP:优点:可靠----TCP在传递数据之前,会有三次握手和四次挥手来建立连接和关闭连接。数据传递时,有确认、窗口、重传、拥塞控制机制。数据传完后,会断开连接用来节约资源。
缺点:效率较低,占用系统的资源高。在传递数据前,需要先建立连接,此时会消耗时间。在数据传递时,确认机制,重传机制,拥塞机制等都会消耗大量的时间,并且需要在每台设备上维护所有的传输连接。而每一个连接均会占用系统的CPU、内存等硬件资源。TCP有确认机制、三次握手机制,容易被人利用,实现DOS、DDOS、CC等攻击,即易被攻击。
UDP:优点:UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的确认机制和三次握手机制,UDP被攻击者利用的漏洞较少一些。
缺点:不可靠、不稳定。因为UDP没有TCP那些可靠的机制,在数据传递时,若网络质量差,容易发生丢包。
TCP |
UDP |
|
是否连接 |
面向连接 |
无连接 |
传输可靠性 |
可靠 |
不可靠 |
应用场合 |
传输大量数据,网络要求高 |
少量数据,网络要求低 |
速度 |
慢 |
快 |
表:TCP/UDP不同
3) 如何选择:
数据要求准确无误,网络质量要求高:常用TCP协议的应用,例如:HTTP、HTTPS、FTP等传输文件的协议。
网络通讯质量不高,要求通讯快:使用UDP,例如NFS、SNMP、DNS、TFTP等。
二、什么是IP地址,如何查看?(默认IPV4)
1) 定义:IP地址是用来在网络中标记一台电脑的一串数字,比如192.168.1.1;在本地局域网上是唯一的。
2) 分类:IP = 网络地址 + 主机地址
图:IPV4地址分类
A类:由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”
地址范围:1.0.0.1 - 126.255.255.254
二进制: 00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110
可用: 126个,每个网络能容纳 1677214 个主机。
B类:由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”
地址范围:128.1.0.1 - 191.255.255.254
二进制: 10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110
可用: 16384个,每个网络能容纳 65534 个主机。
C类:由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”
地址范围:192.0.1.1 - 223.255.255.254
二进制: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110
可用: 2097152个,每个网络能容纳 254 个主机。
D类:第一个字节以“1110”开始,它是一个专门保留的地址。
地址范围:224.0.0.1 - 239.255.255.254
可用: 它并不指向特定的网络,目前这一类地址被用在多点广播中。
E类:以“1111”开始,为将来使用保留。E类地址保留,仅作实验和开发用。
私有IP:10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255
回路测试:127.0.0.1~127.255.255.255
扩充:IPV6是什么?
随着互联网用户的增多,将来IPV4必定不够用,则IPV6将会派上用场。IPV6号称可以为全世界的每一粒沙子编上一个网址。博主认为,随着5G的到来,人工智能发展火热,当无人驾驶、万物智能普及的时候就是IPV6上场的时候了。
3) 如何查看IP:
Windows: Win+R --- cmd --- ipconfig
Linux: ifconfig
三、什么是端口?
1) 定义:端口及port,是计算机和外界通讯交流的出口。按端口号可以分为 公认端口、注册端口、动态和私有端口。
2) 分类:
公认端口:0-1023,它们紧密绑定(binding)于一些服务,这些端口在开发时不可随意更改与使用。
注册端口:1024-49151,松散地绑定于一些服务,开发时可以指定用这些的某些端口号。
动态和私有端口:49152-65535,理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
3) 常见端口:
8080 |
HTTP |
为http服务的备用端口 |
21 |
FTP |
FTP服务器所开放的端口,用于上传和下载 |
22 |
SSH |
远程登录 |
23 |
Telnet |
远程控制Web服务器的方法 |
25 |
SMTP |
发送邮件 |
80 |
HTTP |
网页浏览 |
102 |
MTA |
消息传输代理 |
109 |
POP3 |
接收邮件,客户端访问服务器端的邮件服务 |
110 |
SUN(RPC) |
rpc.mountd, NFS, rpc.statd, rpc.csmd, amd |
119 |
NNTP |
NWES新闻组传输协议 |
135 |
LS |
DCOM服务 |
137/138/139 |
NETBIOS Name Service |
网络邻居,打印机共享等 |
161 |
SNMP |
SNMP允许远程管理设备 |
4) 如何查看端口:
Windows:
(1) Win+R à cmd à netstat –ano PID是端口号
(2) 打开任务管理器 à 详细信息 也可以查看PID
Linus:
netstat -ntlp
Python编程(01)----网络编程之TCP/IP/UDP/Port等知识讲解相关推荐
- Python中的网络编程之TCP
Python中的网络编程之TCP 文章目录 Python中的网络编程之TCP 1.TCP介绍 2.TCP特点 3.TCP与UDP的不同点 4.tcp通信模型 5.tcp客户端 6.tcp服务器 7.T ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...
- 数据连接linux网络编程之TCP/IP基础(四):TCP连接的建立和断开、滑动窗口
在写这篇文章之前,xxx已经写过了几篇关于改数据连接主题的文章,想要了解的朋友可以去翻一下之前的文章 一.TCP段格式: TCP的段格式如下图所示 源端口号与目标端口号 源端口号和目标端口号,加上IP ...
- 网络编程之Tcp,udp
1.TCP 2.补充异常处理 3.UDP 一TCP. 1.socket基础版本通讯 服务端: 1 import socket 2 3 server = socket.socket()# 生成一个对象 ...
- Linux学习——网络编程之TCP/IP协议原理
小知识 设置ulimit值(Linux文件句柄数量)永久生效 新浪博客[转] 设置ulimit值(Linux文件句柄数量)永久生效_祥子_新浪博客,祥子,http://blog.sina.com.cn ...
- 【Python基础】网络编程之IP地址
[Python基础]网络编程之IP地址 文章目录 IP 地址的介绍 1. IP 地址的概念 2. IP 地址的表现形式 2. IP 地址的作用 3. 查看 IP 地址 4. 检查网络是否正常 3. 小 ...
- java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...
- Python中的网络编程之UDP
Python中的网络编程之UDP 文章目录 Python中的网络编程之UDP 一.Socket编程 `1.什么是客户端/服务器架构`? **`2.套接字:通信端点`** 3.套接字地址:主机-端口对 ...
- Python之路 - 网络编程之Socket
Python之路 - 网络编程之Socket C/S架构 ? Socket ? 基于TCP ? 基于UDP ? Socket对象方法 ? C/S架构 ? 在网络通信中 , 一般是一方求一方应 , 求的 ...
最新文章
- 编程语言趋势最新报告:开发者最青睐DevOps,Kotlin增长最快
- 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?
- [NOTE] XMLHttpRequest
- SAP CRM IBASE的archive方法
- Angularjs进阶笔记(1)—不同类型的双向数据绑定
- Python开发入门与实战14-基于Extjs的界面
- MySQL8.0忘记密码了如何修改密码
- 为什么要在2021年放弃Jenkins?我已经对他失去耐心了...
- Android学习笔记27:网格视图GridView的使用
- 高性能、分布式、低延迟的发布订阅中间件对比 Redis 和 emitter
- Android优雅的ui倒计时,Hurry - 一款颜值超高的日历+倒计时 APP - Android 应用 - 生活 - 【最美应用】...
- 使用WLW 写博客的测试
- IntelliJ IDEA 快捷键及模板Templates设置
- C1083: 无法打开包括文件: plugin.moc: No such file or directory
- Cpp web(一) Ubuntu下安装使用Crow服务
- 关于手机的三大谣传 千万不可信
- 盘点开源之经典开源Windows工具集
- 常用putty命令汇总
- 设置cookies过期时间的几种方法(cookies随浏览器关闭而失效的方法)
- Typora去除波浪线
热门文章
- mc服务器经济系统,[经济]NyEconomy — 多经济系统 , 让你不局限于只有几种货币[1.8-1.12] - 服务端插件 - Minecraft(我的世界)中文论坛 -...
- 微信一键激活会员卡(跳转自定义链接地址)
- 机器学习之理解逻辑回归
- 阿里 暑期实习生面经(数字IC岗/四轮面试)
- 计算机视觉——利用openCV调用本地摄像头采集图片并截图保存
- MATLAB:女声转男声
- 人工智能原理复习 | 产生式系统
- 向佐晒郭碧婷与女儿合影
- 7年员工因拒绝钉钉打卡被开除,索赔近60万,终审判决来了!
- 自然语言处理(NLP)学习笔记——分词工具词性对照表