Skip to main content

Home/ Coders/ Group items tagged IP Networking

Rss Feed Group items tagged

ma_haijin

TCP 的那些事儿(上) 酷壳 - CoolShell.cn | 酷 壳 - CoolShell.cn - 0 views

shared by ma_haijin on 11 Aug 16 - No Cached
  • TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。
  • Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。
  • Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题。
  • ...14 more annotations...
  • Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的。
  • TCP Flag ,也就是包的类型,主要是用于操控TCP的状态机的。
  • 其实,网络上的传输是没有连接的,包括TCP也是一样的。而TCP所谓的“连接”,其实只不过是在通讯的双方维护一个“连接状态”,让它看上去好像有连接一样。所以,TCP的状态变换是非常重要的。
  • 这个号要作为以后的数据通信的序号,以保证应用层接收到的数据不会因为网络上的传输的问题而乱序(TCP会用这个序号来拼接数据)。
  • 关于建连接时SYN超时。试想一下,如果server端接到了clien发的SYN后回了SYN-ACK后client掉线了,server端没有收到client回来的ACK,那么,这个连接处于一个中间状态,即没成功,也没失败。于是,server端如果在一定时间内没有收到的TCP会重发SYN-ACK。在Linux下,默认重试次数为5次,重试的间隔时间从1s开始每次都翻售,5次的重试时间间隔为1s, 2s, 4s, 8s, 16s,总共31s,第5次发出后还要等32s都知道第5次也超时了,所以,总共需要 1s + 2s + 4s+ 8s+ 16s + 32s = 2^6 -1 = 63s,TCP才会把断开这个连接。
  • 请注意,请先千万别用tcp_syncookies来处理正常的大负载的连接的情况。因为,synccookies是妥协版的TCP协议,并不严谨。对于正常的请求,你应该调整三个TCP参数可供你选择,第一个是:tcp_synack_retries 可以用他来减少重试次数;第二个是:tcp_max_syn_backlog,可以增大SYN连接数;第三个是:tcp_abort_on_overflow 处理不过来干脆就直接拒绝连接了。
  • 一个ISN的周期大约是4.55个小时。因为,我们假设我们的TCP Segment在网络上的存活时间不会超过Maximum Segment Lifetime(缩写为MSL – Wikipedia语条),所以,只要MSL的值小于4.55小时,那么,我们就不会重用到ISN。
  • 为什么不直接给转成CLOSED状态呢?主要有两个原因:1)TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到Ack,就会触发被动端重发Fin,一来一去正好2个MSL,2)有足够的时间让这个连接不会跟后面的连接混在一起(你要知道,有些自做主张的路由器会缓存IP数据包,如果连接被重用了,那么这些延迟收到的包就有可能会跟新连接混在一起)。
  • Again,使用tcp_tw_reuse和tcp_tw_recycle来解决TIME_WAIT的问题是非常非常危险的,因为这两个参数违反了TCP协议
  • 如果你的服务器是于HTTP服务器,那么设置一个HTTP的KeepAlive有多重要(浏览器会重用一个TCP连接来处理多个HTTP请求)
  • TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。
  • 接收端给发送端的Ack确认只会确认最后一个连续的包,比如,发送端发了1,2,3,4,5一共五份数据,接收端收到了1,2,于是回ack 3,然后收到了4(注意此时3没收到),此时的TCP会怎么办?我们要知道,因为正如前面所说的,SeqNum和Ack是以字节数为单位,所以ack的时候,不能跳着确认,只能确认最大的连续收到的包,不然,发送端就以为之前的都收到了。
  • TCP引入了一种叫Fast Retransmit 的算法,不以时间驱动,而以数据驱动重传。也就是说,如果,包没有连续到达,就ack最后那个可能被丢了的包,如果发送方连续收到3次相同的ack,就重传。Fast Retransmit的好处是不用等timeout了再重传。
  • 注意:SACK会消费发送方的资源,试想,如果一个攻击者给数据发送方发一堆SACK的选项,这会导致发送方开始要重传甚至遍历已经发出的数据,这会消耗很多发送端的资源。
  •  
    TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的技术文档。 之所以想写这篇文章,目的有三个, 一个是想锻炼一下自己是否可以用简单的篇幅把这么复杂的TCP协议描清楚的能力。 另一个是觉得现在的好多程序员基本上不会认认真真地读本书,喜欢快餐文化,所以,希望这篇快餐文章可以让你对TCP这个古典技术有所了解,并能体会到软件设计中的种种难处。并且你可以从中有一些软件设计上的收获。 最重要的希望这些基础知识可以让你搞清很多以前一些似是而非的东西,并且你能意识到基础的重要。 所以,本文不会面面俱到,只是对TCP协议、算法和原理的科普。 我本来只想写一个篇幅的文章的,但是TCP真TMD的复杂,比C++复杂多了,这30多年来,各种优化变种争论和修改。所以,写着写着就发现只有砍成两篇。 上篇中,主要向你介绍TCP协议的定义和丢包时的重传机制。 下篇中,重点介绍TCP的流迭、拥塞处理。 废话少说,首先,我们需要知道TCP在网络OSI的七层模型中的第四层--Transport层,IP在第三层--Network层,ARP在第二层--Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。 首先,我们需要知道,我们程序的数据首先会打到TCP的Segment中,然后TCP的Segment会打到IP的Packet中,然后再打到以太网Ethernet的Frame中
Adildi ldinlio

Building Resilient IP Networks - Cisco Press | Free Ebooks Download - 0 views

  •  
    Building Resilient IP Networks free download at the best library for free networking ebooks download.
karammi

Free crypto signals - 14 views

In blockchain technology, a node graph represents a blockchain network and helps validate transactions and maintain the integrity of the network. A node graph can be used to visualize the structure...

jackmcmahon4

Buy Bing Ads Accounts - 100% Verified, Ready, Cheap Price & Instant Delivery - 0 views

  •  
    Buy Bing Ads Accounts Introduction Bing Ads is a pay-per-click (PPC) advertising platform, meaning that advertisers only pay when someone clicks on their ad. Businesses may develop and manage advertising campaigns on the Bing search engine using Bing Ads Accounts, a service. Businesses may target their advertising to display on Bing when users search for particular terms, and they can also monitor the number of times their ads are clicked. What is Bing Ads Accounts? Bing Ads Accounts are a tool that allows businesses to create and manage advertising campaigns on the Bing search engine. businesses can target their ads to appear when people search for specific terms on Bing, and can track how many people click on their ads. Buy Bing Ads Accounts Businesses that want to reach potential clients on the Bing search engine may find Bing Ads Accounts to be a useful tool. Businesses may grab the attention of qualified leads by targeting their advertising to appear when customers search for relevant terms. Businesses may also determine the success of their campaigns and make the required adjustments by monitoring the number of clicks on their advertisements. Buy Bing Ads Accounts Why should you use Bing Ads? With the help of the effective tool Bing Ads, companies of all sizes may advertise on the biggest search engine on the planet. Although there are several advantages to employing Bing Ads, the following four stand out as particularly compelling arguments: Bing Ads is reasonably priced. A sizable audience may see your adverts. Utilizing Bing Ads is simple. Different ad formats are available with Bing Ads. Being economical A cost-effective strategy to market your company is through Bing Ads. You can choose your own spending limit for your advertising campaign and only get charged when someone clicks on it. You can manage your spending because there is no minimum requirement. Speak to a Big Audience You may advertise to a wide audience using Bing Ads. With a 20% global m
  •  
    Buy Bing Ads Accounts Introduction Bing Ads is a pay-per-click (PPC) advertising platform, meaning that advertisers only pay when someone clicks on their ad. Businesses may develop and manage advertising campaigns on the Bing search engine using Bing Ads Accounts, a service. Businesses may target their advertising to display on Bing when users search for particular terms, and they can also monitor the number of times their ads are clicked. What is Bing Ads Accounts? Bing Ads Accounts are a tool that allows businesses to create and manage advertising campaigns on the Bing search engine. businesses can target their ads to appear when people search for specific terms on Bing, and can track how many people click on their ads. Buy Bing Ads Accounts Businesses that want to reach potential clients on the Bing search engine may find Bing Ads Accounts to be a useful tool. Businesses may grab the attention of qualified leads by targeting their advertising to appear when customers search for relevant terms. Businesses may also determine the success of their campaigns and make the required adjustments by monitoring the number of clicks on their advertisements. Buy Bing Ads Accounts Why should you use Bing Ads? With the help of the effective tool Bing Ads, companies of all sizes may advertise on the biggest search engine on the planet. Although there are several advantages to employing Bing Ads, the following four stand out as particularly compelling arguments: Bing Ads is reasonably priced. A sizable audience may see your adverts. Utilizing Bing Ads is simple. Different ad formats are available with Bing Ads. Being economical A cost-effective strategy to market your company is through Bing Ads. You can choose your own spending limit for your advertising campaign and only get charged when someone clicks on it. You can manage your spending because there is no minimum requirement. Speak to a Big Audience You may advertise to a wide audience using Bing Ads. With a 20% global m
David Corking

Jonathan Schwartz's Blog: Sun's Network Innovations (3 of 4) - 0 views

  • this datacenter systems market is more than $150b annually. And in this datacenter market we build exceptional systems
  • storage, from our new flash based platforms to eco-efficient tape and archive solutions.
  • more than just naked components, they're engineered with remote management and monitoring, component redundancy, integrated virtualization, and on board storage and networking. That's why our margins are higher than the industry's
  • ...7 more annotations...
  • we now build our entire line of storage systems from general purpose server parts, including Solaris and ZFS, our open source file system.
    • David Corking
       
      So, can anyone build a Sun storage device, or are Sun's "general purpose server parts" better (with better management and redundancy ...) ?
  • using a general purpose OS allows us to easily embrace specialized components (from flash memory to GPU's)
  • why am I paying you a million dollars?" I responded, "You can absolutely run it for free. You just can't call me on Christmas day, you'll be on your own." He gave me the PO.
    • David Corking
       
      Schwartz gives the strong impression of an IT company _without_ its hand in your pocket. It is a similar attitude and reputation, though with proprietary software, rather than services (for free software), that seems to have made Microsoft so wealthy in the late eighties and nineties.
  • Solaris OEM agreements with IBM, Dell, Intel, Fujitsu and HP are so important to our end customers - they know they'll never be locked in.
  • These open source platforms generate, alongside the services attached to them, over a billion dollars a year, making Sun by far and away the world's largest open source software company.
    • David Corking
       
      Hundreds of millions of dollars a year from open source Java alone!
  • Fighting free and open software, like fighting free news or free search, is like fighting gravity - and btw, gravity gets a lot stronger during economic downturns.
    • David Corking
       
      !
  • There is a robust, well-designed open source PBX Server called SipX that is primarily backed by Nortel (due to their acquisition of the creators, Pingtel).
  •  
    Making money - billions of dollars of it - with open specification hardware and open source software
1 - 5 of 5
Showing 20 items per page