ipv4

Linux内核优化

◇◆丶佛笑我妖孽 提交于 2020-01-26 16:46:20
主要是指在Linux系统中针对服务应用而进行的系统内核参数调整,优化没有的标准, 根据实际需求优化才是最合适的。 1)编辑内核配置文件 vim /etc/sysctl.con 2)参数及简单说明 net.ipv4.tcp_fin_timeout = 2 #保持在FIN-WAIT-2状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。 net.ipv4.tcp_tw_reuse = 1 #开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。 net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。 net.ipv4.tcp_syncookies = 1 #开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN攻击。默认为0,表示关闭。 net.ipv4.tcp_keepalive_time = 600 #keepalived启用时TCP发送keepalived消息的拼度。默认位2小时。 net.ipv4.tcp_keepalive_probes = 5 #TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值。 net.ipv4.tcp_keepalive_intvl = 15

How do I setup 1 to 1 NAT in google cloud?

纵饮孤独 提交于 2020-01-24 22:10:14
问题 I am new to google cloud, I have been able to setup 1-to-many NAT but need to setup 1-to-1 NAT in google cloud? How do I do this!??! I cannot find the proper documentation, or figure out ... What steps do I need to do to assign an external ip, to an internal ip, and setup the internal ip.s etc. for a single vm. 回答1: Google Compute Engine does not provide a service that offers 1:1 NAT so you'd have to build this yourself. 来源: https://stackoverflow.com/questions/37645146/how-do-i-setup-1-to-1

Mac 查看端口情况

一世执手 提交于 2020-01-23 03:58:17
一个进程可以占用多个端口。 查看某个进程占用哪些端口: lsof -nP | grep TCP | grep -i 进程名 ➜ cocos_creator lsof -nP | grep TCP | grep -i qq QQ 253 deng 24u IPv4 0xcf28a26f9c20c057 0t0 TCP 192.168.1.8:60167->123.151.10.164:80 (ESTABLISHED) QQ 253 deng 37u IPv4 0xcf28a26f78cc0357 0t0 TCP 127.0.0.1:4300 (LISTEN) QQ 253 deng 38u IPv4 0xcf28a26f893869d7 0t0 TCP 127.0.0.1:4301 (LISTEN) QQ 253 deng 43u IPv4 0xcf28a26f9c20c057 0t0 TCP 192.168.1.8:60167->123.151.10.164:80 (ESTABLISHED) 查看某个端口被哪个进程用: lsof -i:端口 1 ➜ cocos_creator lsof -i:60167 2 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 3 QQ 253 deng 24u IPv4

Unable to connect from IPv6 to IPv4 Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found

一世执手 提交于 2020-01-23 03:58:07
问题 I got the below error, while calling API from my iOS app (device) to server. My device is connected to IPv6 network & API which i am calling is with IPv4 network. I created the app using swift and i am using Alamofire for calling API and Reachability for checking Internet connection. What should i do for this. Please suggest on the below error. Request failed with error: Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=

计算机网络-网络层(1)IPv4和IPv6

限于喜欢 提交于 2020-01-22 16:14:28
IPv4数据报格式: 版本号 这4比特规定了数据报的IP 协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。 首部长度 以4字节为单位,没有选项的首部长度为5*4=20字节 服务类型 8bit服务类型(TOS)字段,使不同类型的IP数据报能相互区别开来。 例如一些特别要求低时延、高吞吐量或可靠性的数据报,应用于IP电话应用的实时数据报和应用于FTP应用的非实时流量 一般不用,为0 数据报长度(字节) IP分组可以封装的最大字节数:65535-20=65515B 16比特标识 一个链路层帧能承载的最大数据量叫做最大传送单元MTU 路由器从某条链路收到一个IP数据报,通过检查转发表确定出链路,并且该出链路的MTU比该IP数据报的长度要小,则将IP数据报中的数据分片成两个或更多个较小的片(fragment) IP分片到达目的主机后进行重组,缺失分片后会等待一段时间,然后全部丢弃 IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识,配合源IP地址、目的IP地址、协议等进行分组唯一标识 标志位 1位保留 DF =1禁止分片;DF =0允许分片 MF =1非最后一片;MF =0最后一片(或未分片) 片偏移 指定该片应放在初始IP数据报的相对偏移量(以8字节为单位) 生存时间(TTL) IP分组在网络中可以通过的路由器数(或跳步数) 路由器转发一次分组

IPv4与IPv6数据报格式

十年热恋 提交于 2020-01-22 16:13:17
IPv4: IPv4数据报中的字段: 版本号: 规定了数据报的IP协议版本,通过查看版本号,路由器能够确定如何解释IP数据报 的剩余部分,因为不同IP版本使用不同的数据报格式。 首部长度: IPv4数据报可能包含一些可变数量的选项,这些选项包括在数据报的首部,所以 需要用这 4比特来确定IP数据报中数据部分实际从哪里开始。由于大多数IPv4数据报不包含 选项,所以一般的IPv4数据报具有20字节的首部。 服务类型TOS: 用于区别不同类型的IPv4数据报,它们可能要求低时延、高吞吐量或可靠性。 总长度:这是整个IP数据报的长度,即首部加数据,使用字节计算。该字段长为16比特,因 此,IPv4数据报的理论最大长度为65535字节。 标识、标志位、片偏移: 它们与IP分片有关,标识号用于确定哪些数据报其实是同一个较大 数据报的片,最后一个片的标志位被设为0, 而其他片的标志位被设为1, 偏移字用于指定 该片应该存放在数据报的哪个位置。 TTL: 用于确保数据报不会长时间在网络中循环,每当数据报由一台路由器处理时,该字段 的值减一,当TTL为0时,数据报将会被丢弃。 协议: 该字段标识数据报的数据部分将会交给哪个特定的运输层协议 首部校验和: 用于帮助路由器检测收到的IP数据报中的比特错误,路由器一般会丢弃检测出 错误的数据报, 源和目的IP地址: 顾名思义

UNIX网络编程--IPV4 IPV6 ICMPV4 ICMPV6

☆樱花仙子☆ 提交于 2020-01-22 16:11:55
一、IPV4首部 IP层提东无连接不可靠的数据报递送服务。它会尽力把IP数据报递送到指定的目的地,然而并不保证他们一定到达,也不保证他们的到达顺序与发送顺序一致,还不保证每个IP数据报只到达一次。任何期望的可靠性(既五差错按顺序不重复地递送用户数据)必须由上层提供支持。对于TCP应用程序而言,这有TCP本身完成,对于UDP应用程序而言,这得由应用程序完成。IP层最重要的功能之一是路由。每个IP数据报包含一个源地址和一个目的地址。 1)4位版本字段值为4. 2)首部长度字段是包括任何选项在内的整个IP首部的32位字长度。这个4位字段的最大取值为15,因而IP首部的最大长度为60个字节。扣除首部拱顶部分所占据的20字节外,它最多允许40个字节的选项。 3)历史性的8位服务类型字段被替换为两个字段:6位区分服务码点和2位显示拥塞通知 4)16位总长度字段是包括IPV4首部在内的整个IP数据报的字节长度。数据报中的数据量就是笨字段减掉4乘以首部长度(首部长度都是32位或4字节的整数倍)本字段是必需的,因为有些数据链路要求把帧垫补成某个最小长度(例如以太网),因而有效IP数据报的大小有可能小于数据链路的最小长度。 5)16位标识字段由IP模块为每个IP数据报设置成不同的值,用于分片和重组。该字段必须就源IPV4地址

解决time_wait过多的问题

北城以北 提交于 2020-01-22 11:02:19
vi /etc/sysctl.conf #对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃,不应该大于255,默认值是5,对应于180秒左右时间 net.ipv4.tcp_syn_retries=2 #net.ipv4.tcp_synack_retries=2 #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为300秒 net.ipv4.tcp_keepalive_time=1200 net.ipv4.tcp_orphan_retries=3 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。 net.ipv4.tcp_max_syn_backlog = 4096 #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。默认为0,表示关闭 net.ipv4.tcp_syncookies = 1 #表示开启重用tcp连接。允许将TIME-WAIT sockets重新用于新的TCP连接。默认为0,表示关闭 net.ipv4.tcp_tw_reuse = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收。默认为0,表示关闭 net.ipv4.tcp_tw_recycle = 1

【转】CentOS8新特性

╄→尐↘猪︶ㄣ 提交于 2020-01-21 15:14:09
转自: https://www.jianshu.com/p/612aa1a2efcb 一、CentOS8新特性 CentOS 官网文档手册 CentOS8 相关资料链接←01 CentOS8 相关资料链接←02 CentOS8 与CentOS7的区别 * `CentOS8最终于2019年9月24日发布`。由于这是一个源自Red Hat Enterprise linux (RHEL)的Linux发行版,所以CentOS团队必须构建一个基础设施来支持新引入的RHEL 8。 * 该版本还包含全新的`CentOS Streams`,Centos Stream是一个滚动发布的Linux发行版,它介于Fedora Linux的上游开发和RHEL的下游开发之间而存在。你可以把CentOS Streams当成是用来体验最新红帽系Linux特性的一个版本,而无需等太久。 * CentOS 8主要改动和 RedHat Enterprise Linux 8 是一致的,`基于Fedora 28和内核版本 4.18`,为用户提供一个稳定的、安全的、一致的基础,跨越混合云部署,支持传统和新兴的工作负载所需的工具 * CentOS系统在开发人员和系统管理员中广泛使用,因为它提供了对其高度可定制的开源软件包的完全控制。它是稳定的,背后有一个庞大而活跃的支持社区。由于其可靠性,它已经成为服务器操作系统的主流选择。

Linux网络编程-tcp缓存设置

谁都会走 提交于 2020-01-21 10:23:58
最近发现服务的逻辑完成时间很短,但是上游接收到的时间比较长,所以就怀疑是底层数据的序列化/反序列化、读写、传输有问题,然后怀疑是TCP的读写缓存是不是设置太小。现在就记录下TCP缓存的各配置项以及缓存大小的计算公式。 1.有关发送、接收缓存的配置 内核设置的套接字缓存 /proc/sys/net/core/rmem_default,net.core.rmem_default,套接字接收缓存默认值 (bit) /proc/sys/net/core/wmem_default,net.core.wmem_default,套接字发送缓存默认值 (bit) /proc/sys/net/core/rmem_max,net.core.rmem_max,套接字接收缓存最大值 (bit) /proc/sys/net/core/wmem_max,net.core.wmem_max,发送缓存最大值 (bit) tcp缓存 /proc/sys/net/ipv4/tcp_rmem:net.ipv4.tcp_rmem,接收缓存设置,依次代表最小值、默认值和最大值(bit) 4096 87380 4194304 /proc/sys/net/ipv4/tcp_wmem:net.ipv4.tcp_wmem,发送缓存设置,依次代表最小值、默认值和最大值(bit) /proc/sys/net/ipv4/tcp_mem: