网络端口

详解TCP三次握手与四次挥手

喜你入骨 提交于 2019-12-01 19:36:14
一、TCP三次握手和socket详解 1.TCP 连接 第一次:cli发送SYN包(SYN = j)到ser,并且进入SYN_SEND状态,等待服务器确认; 第二次:ser收到SYN包,必须确认客户的SYN(ACK = j+1),同事自己也发送一个SYN包(SYN = k),即SYN+ACK,此时ser进入SYN_RECV状态; 第三次:cli收到ser的SYN+ACK包,向ser发送确认包ACK(ACK = k+1),此包发送完毕,ser和cli进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕之后,cli与ser才开始传送数据。 2.三次握手状态详解: 3.图解三次握手: 从图中可以看出,当客户端调用connect时,触发了连接请求,向服务器发送了SYN包,这时connect进入阻塞状态;服务器监听到连接请求,即收到了SYN J包,调用accept函数接收请求 向客户端发送SYN K,ACK J+1,这时accept进入阻塞状态;客户端收到服务器的SYN K,ACK J+1之后,这时connect返回,并且对SYN K进行确认;服务器收到ACK K+1,accept返回,至此三次握手完毕,连接建立。 客户端的connect在三次握手的第二次返回,而服务器端的accept在三次握手的第三次返回 。 套接字之间的连接过程分为三个步骤

Android adb 使用详细介绍(含adb使用命令行)

余生长醉 提交于 2019-12-01 19:15:08
Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: l 客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端。 l 服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。 l 守护进程部分,运行于模拟器或手机的后台。 当启动adb客户端时,客户端首先检测adb服务端进程是否运行,如果没有运行,则启动服务端。当服务端启动时,它会绑定到本地的TCP5037端口,并且监听从adb客户端发来的命令——所有的adb客户端都使用5037端口与adb服务端通信。 接下来服务端与所有正在运行的模拟器或手机连接。它通过扫描5555-5585之间的奇数号端口来搜索模拟器或手机,一旦发现adb守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于adb连接,例如: Emulator 1, console: 5554 Emulator 1, adb: 5555 Emulator 2, console: 5556 Emulator 2, adb: 5557 ... 即如果模拟器与adb在5555端口连接,则其与控制台的连接就是5554端口。

TCP握手协议过程及相关细节参数

╄→гoц情女王★ 提交于 2019-12-01 19:14:45
时间记录:2019-6-2 问题描述:笔者在进行压力测试的时候遇到了奇怪的问题,压力机的环境是win7的环境,在进行压力测试的时候发现了系统的端口一直被占用,无法释放开来,进行了接口的查找发现了大量的端口处于time_wait的状态,处于未被释放的状态,在这里进行总结下,以后续出现相关问题的查找。 从如下的几个问题下进行总结: 握手协议的状态,握手协议的链接过程,相关系统参数的调整以适应要求。 1:握手协议 握手协议包括三次握手和四次握手,三次握手协议是进行连接,四次握手是进行终止的,这里描述的是TCP的连接和断开的握手。 三次握手协议(连接) 指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互 第一次握手:客户端发送 syn 包( syn=j )到服务器,并进入 SYN_SEND 状态,等待服务器确认; 第二次握手:服务器收到 syn 包,必须确认客户的syn( ack=j+1 ),同时自己也发送一个 SYN 包( syn=k ),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态; 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1) ,此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。 注意:

docker单主机网络管理实践

試著忘記壹切 提交于 2019-12-01 18:55:52
容器作为应用,必然需要与外界通信,包括容器之间和外部网络。 Docker网络从覆盖范围分 单台主机上的容器网络★ 跨多台主机的容器网络 容器间通信 容器间通信的三种方式: IP Docker DNS Server joined IP通信 Docker安装时,默认会在主机上创建三个网络,bridge、host、none。可用 docker network ls 查看 none 就是只有loopback的网络,无其他任何网卡。容器创建时可以用 --network=none 来指定容器使用none网络 适应场景:一些安全性要求较高且不需联网的应用,如生成随机密码的容器,放在none里防止窃取。 host 类似于虚拟机中共享主机网络的选项,即使容器共享其所在主机的网络栈,该容器的网络配置和主机完全一样。 适应场景:如容器对网络传输效率较高要求,则可使用host网络。注意考虑端口冲突。 bridge 类似于虚拟机中的桥接模式,可理解为一个软件交换机。默认情况下,不指定 --network 参数,创建的容器都会挂到一个叫 docker0 的Linux bridge上。可以使用命令 brctl show 查看。 注:首次使用 brctl 命令,可能会提示安装。 brctl 命令在 Debian、Ubuntu 中可以使用 sudo apt-get install bridge-utils 来安装

Docker 学习入门

独自空忆成欢 提交于 2019-12-01 18:31:56
摘自: https://www.cnblogs.com/chiangchou/p/docker.html Docker 学习入门 目录 一、Docker 简介 1、什么是 Docker 2、为什么要用 Docker 3、Docker 基本组成 二、Docker 安装 1、CentOS7 安装步骤 2、Docker 命令 三、镜像管理 1、镜像简介 2、镜像管理 四、容器管理 1、创建容器 2、容器资源限制 3、容器常用命令 五、管理应用程序数据 1、Volume 2、Bind Mounts 六、容器网络 1、Docker 网络模式 2、容器网络访问原理 七、制作镜像 1、Dockerfile 2、构建基础镜像 八、镜像仓库 1、Habor 2、安装 Docker Compose 3、安装 Harbor 4、Harbor 简单使用 九、图形化管理 1、安装 Portainer 2、访问 Portainer 回到顶部 一、Docker 简介 1、什么是 Docker Docker 是使用最广泛的开源容器引擎,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup

Java网络编程:IP地址和端口号

ぃ、小莉子 提交于 2019-12-01 18:31:09
1)IP地址 用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。 2)IP地址分类 IPV4:32位地址,以点分十进制表示,如192.168.0.1 IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984 3)特殊的IP地址 127.0.0.1 本机地址 192.168.0.0--192.168.255.255私有地址,属于非注册地址,专门为组织机构内部使用。 4)端口:port IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。 端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。 端口范围0---65535,16位整数 5)端口分类 公认端口 0—1023 比如80端口分配给WWW,21端口分配给FTP,22端口分配给SSH,23端口分配给telnet,25端口分配给smtp 注册端口 1024—49151 分配给用户进程或应用程序 动态/私有端口 49152--65535 6)理解IP和端口的关系 IP地址好比每个人的地址(门牌号),端口好比是房间号。必须同时指定IP地址和端口号才能够正确的发送数据 IP地址好比为电话号码

netstat 查看冲突端口

醉酒当歌 提交于 2019-12-01 17:34:37
故事是这样的。 某日,销售来电:发布出去的程序运行错误,日志报告端口(程序使用端口27015)被占用了,机器重启多次不能恢复。 于是远程里一下,使用如下方法: 1、启动cmd 2、使用netstat命令,输出结果到文本 D:\>netstat -nab > d:\1.txt 3、使用笔记本查找 D:\>notepad d:\1.txt // TCP 127.0.0.1:29015 0.0.0.0:0 LISTENING [NetSummary.exe] 我们使用的端口为“27015”,为啥是这个呢,hehe 发现苹果充电服务程序使用了这个端口。 询问销售,他一直在给他的苹果手机充电... ... 我默默的看了看我的Android 另,netstat 命令的参数 显示协议统计和当前 TCP/IP 网络连接。 NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] -a 显示所有连接和侦听端口。 -b 显示在创建每个连接或侦听端口时涉及的可执行程序。 在某些情况下,已知可执行程序承载多个独立的 组件,这些情况下,显示创建连接或侦听端口时涉 及的组件序列。此情况下,可执行程序的名称 位于底部[]中,它调用的组件位于顶部,直至达 到 TCP/IP。注意,此选项可能很耗时,并且在您没有

Linux Firewalld 基础

泄露秘密 提交于 2019-12-01 17:32:37
互联网上提供了各种网络服务,而防火墙可以设置各种规则来限制访问,保护服务器。 概述 Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙。 Linux 系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率。 三种防火墙 netfilter 指 linux 内核中实现包过滤防火墙的内部结构 属于 内核态 的防火墙功能体系 iptables 指管理 linux 防火墙的命令程序 属于 用户态 的防火墙管理体系 Firewalld CentOS 7 默认的防火墙管理工具,取代之前的 iptables 防火墙 属于 用户态 firewalld 和 iptables 内部结构都指向 netfilter 这个强大的网络过滤子系统,以实现包过滤防火墙功能 支持动态更新、加入防火墙 zone 概念 支持 IPv4 和 IPv6 地址 字符管理工具 firewall-cmd 和图形化管理工具 firewall-config 区别 名称 Firewalld iptables 配置文件 /usr/lib/firewalld/和/etc/firewalld/ /etc/sysconfig/iptables 对规则的修改 不需要全部刷新策略,不丢失现行连接 需要全部刷新策略,丢失连接 防火墙类型 动态防火墙 静态防火墙 网络区域 区域介绍

Linux学习笔记——netstat

拈花ヽ惹草 提交于 2019-12-01 17:31:27
netstat是网络状态查看命令 ,在进入正题先来了解一下端口 一、端口 (1)端口号是什么? 端口号—具有网络功能的应用软件的标识号。也可以这么理解:一个电脑给你电脑中的QQ发送信息,这个电脑通过ip找到你的电脑并把信息发送过去。当这个信息到达你的电脑时,需要交给QQ这个应用。那么电脑是如何找到QQ这个应该的呐?没错,就是通过端口号。也就是说当信息到达你的电脑后,会选择QQ的端口号把信息交给QQ。 注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。 (2)端口号有多少种分类? 端口号分为三类 第一类:公认端口号 从0到1023,它们紧密绑定(binding)于一些服务(固定分配给一些服务)。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP。 第二类:注册端口号 从1024到49151。它们松散地绑定于一些服务。这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。 第三类:动态或私有端口 从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。 (3)常见的端口号有那些? FTP:20和21,HTTP:80,TELNET

day26

旧城冷巷雨未停 提交于 2019-12-01 16:49:21
Python 网络编程   计算机网络就是把各个计算机连接起来,让网络中的的计算机可以相互通信,而网络编程就是在程序中实现计算机相互通信。   举个例子,当你使用电脑访问微博时,你的电脑就和微博的某台服务器通过互联网连接起来了,服务器把网页上的内容作为数据通过互联网传输到你的电脑上。   更具体一点,由于你电脑上同时也存在着和其他服务器的连接,如qq服务器,所以,更确切的说,网络通信,其实时两台计算机上的进程的通信   网络编程对所有的编程语言都是一样的,就是在Python程序本身这个进程上,连接别的服务器进程的通信端口进行通信   接下来作者介绍了Python网络编程的概念和最主要的两种网络类型的编程 TCP/IP简介   互联网和计算机网络   计算机网络要比互联网出现早的多,虽然他们都是把多个计算机连在一块,但是早期的计算机网络的通信协议,每个厂商都有一个,互不兼容,而想要把计算机连在一起,就必须规定他们之间的通信协议,并且只有通信协议相同的才能进行通信,才能真正的连在一起。而互联网Internet由inter和net两个单词组成,本质上就是连接网络的网络。所以要想让所有的计算机连在一起,就必须指定一个统一的、通用的通信协议,这个协议就是互联网协议簇。   互联网协议包含上百个不同的协议,而其中最重要的就是TCP/IP协议,所以互联网协议又被称为TCP/IP协议   IP