How TCP Works - MTU vs MSS

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 154

  • @skakfinn
    @skakfinn 6 ปีที่แล้ว +3

    Simple and to the point without any waste of time ...Perfect...

  • @dogood2848
    @dogood2848 3 ปีที่แล้ว +1

    Thanks for this clear and concise break down between TCP MSS and Network MTU

  • @cjcjonesit
    @cjcjonesit 5 ปีที่แล้ว

    I don't what it is about you, but you make them seem so easy. Thanks a million.

    • @ChrisGreer
      @ChrisGreer  5 ปีที่แล้ว

      Thanks for the comment Carlton - happy the videos are helping.

  • @akashranjan1631
    @akashranjan1631 2 ปีที่แล้ว

    Thanks Chris, your videos really helped me clear my interview for Akamai, really appreciate your contribution.

  • @alialbushama539
    @alialbushama539 4 ปีที่แล้ว +4

    Chris, Thank you for all the educational videos that you post. I have learnt so much by watching them.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +2

      Glad you like them!

  • @Zeus-fm8tv
    @Zeus-fm8tv 2 ปีที่แล้ว

    Some serious stuff is explained in the easiest manner!! Thank you.

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      Glad it was helpful!

  • @pitaco-0815
    @pitaco-0815 ปีที่แล้ว

    Thanks! I was confused that the same word "MTU" was used on different layers. Now I got it :)

  • @ijajahmedofficial
    @ijajahmedofficial 4 ปีที่แล้ว +2

    Thank you Chris for this video. It really helps me to understand clearly about MTU and MSS.

  • @FerdsTechChannel
    @FerdsTechChannel 3 ปีที่แล้ว

    Good video about Ethernet MTU and L3 MTU and TCP MSS! Thanks!

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Thanks for the comment!

  • @fluffy1973
    @fluffy1973 5 ปีที่แล้ว +1

    DUDE, you need to be on Udemy, this is real quality work.

    • @ChrisGreer
      @ChrisGreer  5 ปีที่แล้ว +4

      fluffy1973 hey! I have a “Troubleshooting Slow Networks with Wireshark” course on PluralSight. Check it out! www.pluralsight.com/courses/troubleshooting-slow-networks-wireshark

  • @gaulogao
    @gaulogao 3 ปีที่แล้ว +1

    Thanks, Chris. Your videos help me a lot!!

  • @adhak2011
    @adhak2011 4 ปีที่แล้ว +5

    In 5:59, it should be pointed that MSS is not a negotiated value in essence between the 2 end points. However, the way Operating Systems implement it and deal with it might differ from the original description in the RFC and choose to work with the lowest MSS value advertised between the 2 sides.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +3

      You are correct. I need to clip that part of the video - the MSS is an advertised value, not a negotiated one. Thanks for clarifying.

  • @F4t4lid4d3
    @F4t4lid4d3 5 ปีที่แล้ว

    Wonderful explanation...I faced some issues with a pppoe link couple days ago. the root cause was the MSS configuration, after some adjustments the problem is solved.

    • @F4t4lid4d3
      @F4t4lid4d3 5 ปีที่แล้ว

      @Hussein Az Hi, you have to adjust the mss parameter on your device... In my case I'm using Mikrotik Routerboard. Google it for MSS and your device model...it helped for me.

  • @lakku121
    @lakku121 6 ปีที่แล้ว

    Very crisp and clear . Thankyou Chris!

  • @yhytuncer
    @yhytuncer 4 ปีที่แล้ว +1

    Great video ! I wish you could add some throughput and bandwidth troubleshooting videos as well.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว

      Hey Leo! Be sure to check out the TCP congestion control video, I talk about those topics there - th-cam.com/video/LNeZZZ_oslI/w-d-xo.html

  • @vv-gd1et
    @vv-gd1et 3 ปีที่แล้ว

    Well explained. Thanks Guru🙏

  • @williebrown4266
    @williebrown4266 6 ปีที่แล้ว

    Excellent presentation. Both the graphics and the presentation complement each other which makes it very understandable.

    • @ChrisGreer
      @ChrisGreer  6 ปีที่แล้ว

      Thanks for watching Willie!

    • @ChrisGreer
      @ChrisGreer  6 ปีที่แล้ว

      Thanks Willie!

  • @SeroeKrevedko1
    @SeroeKrevedko1 2 ปีที่แล้ว +1

    Hi Chris! Appreciate your work! It would be great to add in video explanation about how work adjusts MSS in network devices. I can provide you with simple gns3 topology with c7200 routers and an example of how routers change the mss value

    • @vasishtsubramanian4855
      @vasishtsubramanian4855 ปีที่แล้ว

      www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/16-9/configuration_guide/ip/b_169_ip_3650_cg/configuring_tcp_mss_adjustment.pdf

  • @FantonMr
    @FantonMr 5 ปีที่แล้ว

    Thank you for your explanation in an easy way.

  • @wiltonwell
    @wiltonwell 2 ปีที่แล้ว

    Wow Chris, thank you so much, this has helped me so much. Looking forward to learning more from you. Now getting on the TCP with you and David.

  • @nikulvirpariya
    @nikulvirpariya 6 ปีที่แล้ว +1

    Thank you for sharing. Fantastic and easiest way to understand. Thanks a lot Chris !! Keep Sharing.

  • @ciscology8367
    @ciscology8367 2 ปีที่แล้ว

    Amazing video Chris very informative! I never knew knew about MSS . Keep them coming please.

  • @tarekz6934
    @tarekz6934 4 ปีที่แล้ว

    Very clear explanation , thanks!

  • @VyshfulThinking
    @VyshfulThinking 3 ปีที่แล้ว +2

    Amazing Chris

  • @kenz0bux
    @kenz0bux 6 ปีที่แล้ว

    the simplest explanation! thank you

  • @rupees6
    @rupees6 6 ปีที่แล้ว +2

    Hi, you mentioned at around 6.05 that the sender and receiver should use the lowest value of MSS. But in RFC 879, it states that "The MSS can be used completely independently in each direction of data flow. The result may be quite different maximum sizes in the two directions".

    • @ChrisGreer
      @ChrisGreer  6 ปีที่แล้ว +2

      Hello Johnny - that is correct, the RFC does mention that it CAN be used independently. However, in most implementations, most TCP stacks will use the lower of the two values. For example, if a client sent a SYN with an MSS of 1300, it is rare to see the server send a 1460, or anythign higher than 1300. Usually it will send back a 1300 as well.

  • @upelister
    @upelister 2 ปีที่แล้ว

    Another great video thank you.

  • @ashwinramachandran118
    @ashwinramachandran118 3 ปีที่แล้ว

    Thank you . Great explanation

  • @universalponcho
    @universalponcho 3 ปีที่แล้ว

    Was told to watch this guys videos while reading my books for uni. Now I am watching this guy simply out of enjoyment lmao... 😄👍

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Thanks for the comment Jamey! Thanks for watching and thanks to whoever recommended the channel.

  • @samirshaikh52
    @samirshaikh52 6 ปีที่แล้ว +1

    Wonderful explanation as usual. Thank you Chris

  • @PolymathTheDiver
    @PolymathTheDiver 5 ปีที่แล้ว

    Excellent video. Good job Chris.

  • @SaurabhKumar-lt9pk
    @SaurabhKumar-lt9pk 2 ปีที่แล้ว

    Very good explain 👌👌

  • @VivekError
    @VivekError 8 หลายเดือนก่อน

    Chris, would like to understand the difference between window size vs MSS.

  • @josephmbimbi
    @josephmbimbi 6 ปีที่แล้ว +1

    great video, very clear and informative, thank you.

  • @facebookinger
    @facebookinger ปีที่แล้ว

    Thank you for explanation. :)

  • @kimmy0795
    @kimmy0795 5 ปีที่แล้ว

    Very clearly. Many thanks !!

  • @prdpbhadoo
    @prdpbhadoo 5 ปีที่แล้ว

    Its very helpful, Thanks Greer

  • @exolicious1416
    @exolicious1416 4 ปีที่แล้ว +1

    I have a question:
    What i learned recently was, that the network layer (i am talking about the IP layer 3, which i am not sure if that is the correct english term), would not "look into" the encapsulated headers (layer 4 and 5).
    You however mentioned in your video that some network device along the way could have changed the MSS.
    I am a little confused and would really appreciate if you answered my question.
    Thanks in advance and thank you so much for the great videos on this topic. really appropriate speed and great visualisation!

    • @exolicious1416
      @exolicious1416 4 ปีที่แล้ว +2

      Wow after scrolling through the comment section i just found the exact same question by someone else, whcih you already answered, disregard my comment.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว

      @@exolicious1416 Not a problem at all! Thanks for the question. I totally understand - I didn't know that L3 routers could adjust a layer 4 MSS value either, until it was something that I ran into on a client network. It is a good question!

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว

      @@exolicious1416 Not a problem at all! Thanks for the question. I totally understand - I didn't know that L3 routers could adjust a layer 4 MSS value either, until it was something that I ran into on a client network. It is a good question!

  • @tsrinivasnetwork6143
    @tsrinivasnetwork6143 5 ปีที่แล้ว +1

    Awesome video..

  • @andygerard228
    @andygerard228 2 ปีที่แล้ว

    Nice that was extremely helpfull.

  • @sujitprakashjha
    @sujitprakashjha 2 ปีที่แล้ว

    Hi Chris,
    First of all thank you for these TCP amazing explanation. I never knew this much TCP does and this series of video made me to understand it deeper.
    Could you please explain why MSS default value is 536 bytes?

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Hey Sujit! glad you enjoyed the video. The MSS default value is based on the IP minimum (maximum) packet size of 576 bytes. An IP endpoint should be able to accept packets of at least 576 bytes. They can be smaller than that, but the station should always be able to accept at least that as a maximum packet size. When you slice off the 20 byte IP header, then the 20 byte TCP header, you would get 536 as a payload, which would be encapsulated. Hope that helps!

  • @rodrigomunoz1556
    @rodrigomunoz1556 6 ปีที่แล้ว +4

    Hello Chris, thank you for this quality content, your videos help me in my daily work as a network engineer.
    I will really appreciate if you can give some advice about this issue.
    This is a TCP conversation, the client announces an MSS = 1452, server announces MSS = 1460, client uploads data to the server, this is a LAN environment, both devices are physically in the same Data Center in different VLANs.
    The problem: A lot of TCP errors: retransmissions (> 3%), dupACK, out of order packets, etc.
    What I see: fragmentation, If I perform a tcpdump directly on client OS, I see a lot of packets larger than MSS, ie 3000 or 4000.
    Why is client building that's long packets? could it be that TCP stack on the client side is not working as expected?
    There is other TCP conversations between the same hosts but in the opposite direction, in that case, all packets are equal or less than MSS, TCP errors are minimal (

    • @dota2tournamentss
      @dota2tournamentss ปีที่แล้ว

      I'm wondering if you solved it :) IMO application on the one or both side has incorrect TCP implementation and despite negotiating MSS they ignore it and they send packets much larger than expected.

  • @sigmadews5403
    @sigmadews5403 5 ปีที่แล้ว

    Great explanation! Thank you!

  • @rookiery868
    @rookiery868 6 ปีที่แล้ว +1

    Great video ! Thanks!

  • @amisriva1
    @amisriva1 3 ปีที่แล้ว

    My understanding is that the MSS value is 'announced' and not 'negotiated' during the TCP handshake. I have seen material over the internet that will tell you that the 'lower' of the two (client and server) MSS values will be used. I don't believe its correct. Chris, would you clarify? BTW, your videos are just amazing

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Hello Amit, you are correct. The MSS is not negotiated, it is an advertisement. I have seen stacks respect the lower value before, however the value itself is not negotiated between endpoints. Thanks for watching Amit!

  • @BrunoVernay
    @BrunoVernay 4 ปีที่แล้ว

    At about 1' it is only true for IPv4. When using IPv6, there can be no fragmentation along the way. The MTU must be set no just with the other interface locally, but along the whole path. (For the 0.01% that already use IPv6 out there ...).
    Excellent videos by the way, I am watching the whole series backwards !

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Thanks for the comment Bruno! That is true - I should shoot another vid with an IPv6 slant since that one was v4 focused. Glad to hear you enjoy the content.

  • @StefanDekanski
    @StefanDekanski 4 ปีที่แล้ว +2

    The most confusing part about TCP and MSS is about Options in the IP layer and TCP. From my understanding, you only 'count' fixed header size of both TCP and ID (20 each) and then trim off any data from the TCP segment, by the byte amount of Options of IP and TCP (that are used). Right?
    For example, if I have MSS of 1460 and IP without options and have one TCP option (4 bytes, or smaller but with added padding, for 32bit rule) then I can't really send 1460 but 1456 of actual data?

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว

      Yes that is correct - If the TCP header is carrying options for SACK or timestamps, or other options, this takes space away from the encompassed data. So in these cases it is not uncommon to see payloads that are less than 1460 bytes. Remember the MSS is just an absolute maximum, given no options in the tcp header. However if it is smaller than that it is acceptable.

  • @mitpatel4268
    @mitpatel4268 4 ปีที่แล้ว +1

    Hi Chris,
    So does this imply that MSS must match on both ends? And, the negotiation "should" be such that they should settle up to the lowest MSS value between the two?

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Thanks for the question Mit - No, the MSS does not need to match. It is an independent value advertised by each end of the connection and is not negotiated. It is simply an advertisement of the largest segment size that a host can receive. So in other words - "Don't send me anything larger than this.... 1400" Or whatever value is used.

    • @mitpatel4268
      @mitpatel4268 4 ปีที่แล้ว

      @@ChrisGreer Great, thanks Chris. And, both MSS and Window Size would be determined by the local device itself and will be advertised to the opposite end, depending on internal buffer capacity, network conditions, etc?

  • @tuliksky
    @tuliksky 6 ปีที่แล้ว

    Thanks for your explanation!

  • @tsushima33
    @tsushima33 4 ปีที่แล้ว +1

    Thank you!! Great!

  • @nayan271984
    @nayan271984 6 ปีที่แล้ว +1

    Hey Chris,
    What is the exact difference between MSS and Window size ?
    I gone through the your videos and I found that in wireshark window size is 65535 bytes and MSS size is 1460.
    Now MSS value is local to interface and Window size is receiver buffer size.
    So if the Window size is 65535 bytes and mss size is 1460 then will client/server send data as per 65535/1460=44 segment of chunks ?

    • @kanchadabest
      @kanchadabest 2 ปีที่แล้ว

      Great question, I want to know the answer of this question too ??

  • @mohamedhaneef6379
    @mohamedhaneef6379 5 ปีที่แล้ว

    Great video !

  • @ranjanadissanayaka5390
    @ranjanadissanayaka5390 2 ปีที่แล้ว +1

    hey, I got a question.
    The syn,ack from the server to the host -- is that the MSS negotiated between the two devices ? or is that the MSS on server's side (MSS of server) ??. Please answer.

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      MSS is advertised, not negotiated. Both sides can have different values while respecting the one set by the other side.

    • @gaborm4767
      @gaborm4767 ปีที่แล้ว

      ​@@ChrisGreer Why my computer send maximum only 1400 bytes TCP payload if the other peer sent MSS value 1412?

  • @claay832
    @claay832 5 ปีที่แล้ว

    I always find your videos helpful. I am using NetScout solution. My comment is... You mention that the network device can interfere and change the MSS size.. If I want to know who modified the MSS size (if the network device or the server itself), then I should just compare the TTL and MTU of each capture of each network segment against the TCP dump. Because that can give me clue if the MSS changed against the TTL value Am I correct?

  • @alexchamorro1884
    @alexchamorro1884 3 ปีที่แล้ว

    gracias por el video..!,saludos.

  • @deepthireddy6354
    @deepthireddy6354 2 ปีที่แล้ว

    Hi Chris,
    Thanks for sharing the knowledge, I wanted to one thing.
    When I tried to change the MTU size to 9014bytes from 1500 bytes, am unable to see that change. I tried to change in configure option of particular ethernet interface.
    Please help me with this issue

  • @roswithadusa8673
    @roswithadusa8673 11 หลายเดือนก่อน

    hello chris timeline 3:46 why in mtu are not the frame header (18bytes)included?

  • @dimplejaral2239
    @dimplejaral2239 5 ปีที่แล้ว +1

    Thanks very much...

  • @rudrashahi8261
    @rudrashahi8261 5 ปีที่แล้ว

    nice explanation...!!!

  • @neelabhsrivastava70
    @neelabhsrivastava70 3 ปีที่แล้ว

    Hi Chris. Can u explain the difference between Window Size Value and and MSS. Not able to find any tutorial for the same.

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Hey - sure thing - here is a video on the RX Window. th-cam.com/video/Qpkr_12RQ7k/w-d-xo.html That should take care of ya.

  • @pcpmtiservicos9855
    @pcpmtiservicos9855 4 ปีที่แล้ว

    Thank you for this great content!

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว

      Glad you enjoy it!

  • @anuraagtummanapally1395
    @anuraagtummanapally1395 5 ปีที่แล้ว +1

    @Chris Greer what software do you use for presenting switches and nodes etc... can you share the info...
    at 0:27 a slide is there, I want to make similar slides, which software should I be using to get such figures...
    Thanks

    • @ChrisGreer
      @ChrisGreer  5 ปีที่แล้ว +2

      It's just Powerpoint with some Visio icons for the routers and switches. Nothing too crazy. Thanks!

  • @christoffer913
    @christoffer913 5 ปีที่แล้ว

    Thank you, Chris!

  • @pawanshirke
    @pawanshirke 5 ปีที่แล้ว

    Hi Chris,
    Does the Ethernet MTU value be higher that 1500 if my Ethernet interface size if Tengig?
    Does the MTU size some how dependent on the actual interface size?
    In some routers we do define mtu for a an interface as 4484 or even higher value.
    This configuration of setting mtu size on an interface makes the topic MTU confusing to understand.

  • @subhamthemusicalguy8851
    @subhamthemusicalguy8851 4 ปีที่แล้ว +1

    You are a gem

  • @akashvikraman
    @akashvikraman 3 ปีที่แล้ว

    Assume we have a host and 3 routers connection serially with different mtu. How does the tcp sender and receiver calculates mss value

  • @mitpatel4268
    @mitpatel4268 4 ปีที่แล้ว

    Hi Chris,
    I am getting into this and it is quite a lot of details if I try to put all things together. Nevertheless, can you please address one question?
    Suppose interface MTU (L2) is set to 9000. Now, if MSS is having a value of say 1460, does it make any sense/advantage of having the interface MTU very large (i.e. 9000)? Segments are naturally going to be smaller because of limited MSS value right? I am now puzzled on how the concepts fit in. Does the 9000 L2 MTU have any significance or advantage in this case? Maybe yes - because, so many TCP segments would fit in to a single L3 and L2 PDU?
    I hope my question would make sense to you.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Great question as well Mit!
      Remember that other protocols will use a connection as well - such has UDP, or other IP traffic. Traffic is not always TCP, so a larger MTU at layer 2 could be utilized in theory by non-TCP traffic that can support a higher payload. But TCP will always go by the MSS.

    • @mitpatel4268
      @mitpatel4268 4 ปีที่แล้ว

      @@ChrisGreer Thanks Chris!!! So what you mean to say is - for any non-TCP traffic, values of 9000 as the L2 MTU can possibly be advantageous, but won't be the case for TCP traffic, given that we have a TCP MSS of 1400? Bottom line is - a frame can be only as big as permitted by the TCP MSS ultimately. Is that correct?

    • @deepthireddy6354
      @deepthireddy6354 2 ปีที่แล้ว

      @Mit Patel
      Can we set MTU value to 9000, I have tried using some commands but when I send the data and checked in wire shark I able to see still the size is 1500 which is default value.
      Can you please give me the steps to change the MTU size in windows

  • @shkelqimemini1425
    @shkelqimemini1425 4 ปีที่แล้ว

    If we have ipv6 and we know ipv6 have 40byte header and my question is Does the mss decrease even more ?

  • @Rai_Te
    @Rai_Te หลายเดือนก่อน

    Nice video ... however, the value in absense of the ip-mss-option is incorrect.
    tcp will not use the minimal value (as mentioned in the video), instead, tcp
    will start with a value derived from its own exgress interface and use the mechanism
    of tcp-path-mtu-discovery via icmp packets (fragmentation needed but df-bit set).
    This is the older way of discovery and it has proven to be somewhat unreliable
    especially today.

    • @ChrisGreer
      @ChrisGreer  หลายเดือนก่อน

      Thanks for the comment! Agreed that PMTUD is a thing. If you have a pcap of that in the wild on a modern stack I'd love to see it. It's been years since I've seen it actually implemented in practice.
      So this is a "must" vs "strongly recommended" thing.
      TCP RFC 9293 states in 3.7.1 - If an MSS Option is not received at connection setup, TCP implementations MUST assume a default send MSS of 536.
      PMTUD is "Strongly recommended", but for me, I haven't seen it in practice in some time. I would love to though so send me the pcap!

    • @Rai_Te
      @Rai_Te หลายเดือนก่อน

      @@ChrisGreer I wasn't aware of the statement in RFC 9293 ... and in a way, it somewhat amazes me (as it will reduce throughput noticabely). However, I came more than once (in the last 10 years) into a situation, where the sending and receiving stack on the peer-systems would love to use the mss-option, but there are intermediate firewalls that filter all (!!) options ... this is usually a malconfiguration of the firewall, however, tcp is required to work even if options cannot be delivered. And in those situations, I've seen the local interface-mtu (reduced by ethernet.overhead and eventually GRE/IPinIP/etc overhead) used to derive an initial tcp-mss ... when an icmp (as mentioned) arrives, this value is reduced according to the hint given in the icmp. This would work fine, if (and only if) the malconfigured firewall would let the icmp pass ... but in the cases that eventually involve me to troubleshoot, they usually dont. Situation becomes worse, if there is an encryted tunnel used as part of the routing-path ... in such a case, it can happen, that the tunneling devices copies the DF-bit from the inner (encrypted) frame to the outer transported frame ... so the outer frame shall not be fragmented ... but on the other side, returning icmp's for such a frame cannot be handled properly (as the encrytion usually works stateless). In such a case the only thing that helps is to clear the df-bits in the outer frame. However, this does not help when errors occur for traffic that you get from the remote side.
      I just ckecked the rfc ... 9293 came out in August of 2022 ... so, if this was the first one to tell
      'MUST use 536' a large number of systems (using ipv4) will not yet implement this.

  • @mustafaabdelfattah2493
    @mustafaabdelfattah2493 4 ปีที่แล้ว

    Thanks chris for the vidio , we hope the plalylist include new vidio for fragmentation process and its details, and what the offset number refers to ? , how pcap will be different at the client before fragmentation and at the server side after fragmentation happend in between , and is that fragmentation must lead to slowness ? How can i decide ?

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Hey Mustafa, great suggestion on a video. I'll take a look at it and see where I can work it in. It might be on a new series - How IP Works. :-)

  • @mrspacer1
    @mrspacer1 5 ปีที่แล้ว +1

    is MSS value the same for receiving and transmitting?

    • @ChrisGreer
      @ChrisGreer  5 ปีที่แล้ว +2

      The advertised MSS is a statement of what the sender can receive in terms of payload bytes. Each side can have a different MSS. If the other station can receive a higher MSS, the opposite station should be able to transmit at that higher MSS, even if it is advertising that it can only receive a lower MSS. In practice, TCP stacks may vary on this. I have seen a stack that would only transmit the same size as it's own TCP MSS receive size. This is not according to the standard though.

  • @rajivgoud1000
    @rajivgoud1000 3 ปีที่แล้ว

    I have a doubt Chris. As per your explanation, MSS is set during the 3 way handshake. So the data being segmented would not cross the MSS value. When does the IP fragmentation come into play then?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      That is a great question Rajiv. IP fragmentation would come into play if there is a lower MTU along the path than the packet size, including the TCP and IP headers. So you could have an MSS value of 1400 (which, if the TCP and IP header values are both 20 bytes would give you an IP packet length of 1440) but an MTU somewhere of 1000, which would then require fragmentation. Hope that helps.

    • @rajivgoud1000
      @rajivgoud1000 3 ปีที่แล้ว

      @@ChrisGreer Thanks Chris. IP Packets can take any path and encounter a lower MTU device. Cleared. :)

  • @techevangelist8373
    @techevangelist8373 4 ปีที่แล้ว

    Great content. I have this doubt - In your other video named "how tcp works - the handshake" at 6:59, you said MSS value is something getting negotiated between sender and receiver.. and both the parties fall back to the lowest one..but here in some answers to questions in the comment session, you said MSS is not negotiated and independent of sender and receiver..are these contradicting statements?

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +2

      Hey - thanks for the comment. MSS is not negotiated. If I said that or implied it then I was in error. I may have meant that some stacks will respect the lower of the two values. But the value itself is not negotiated. If it is not advertised in the handshake at all, then the opposite side will generally assume 536 as a default value. Thanks for the question!

    • @techevangelist8373
      @techevangelist8373 4 ปีที่แล้ว +1

      @@ChrisGreer thanks for your reply

  • @techevangelist8373
    @techevangelist8373 3 ปีที่แล้ว

    Is there a concept like L2 MTU and L3 MTU? What I heard is L2 MTU is 1500Bytes + Ethernet header where as L3 MTU is 1500Bytes(Payload+TCP H+IP H). I always thought ethernet MTU is how much of data that can go inside an ethernet header(excluding the ethernet header). Can you correct me?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +1

      Hello! Short answer - yes. There is an L2 MTU and L3 MTU. Both are basically the same number though, since L2 doesn't include the ethernet bits. For the most part i have seen the two terms used interchangeably, but they are different.

  • @JEANLEONARDOESTRADAROQUE-h1s
    @JEANLEONARDOESTRADAROQUE-h1s ปีที่แล้ว

    It is possible view MTU value on Wireshark?

  • @rendroyce
    @rendroyce ปีที่แล้ว

    Hi, I'm reporting a problem I've had in the past. An application is running at 1400 MTU. There was a problem with application access, I pulled the interface to 1400 MTU on the firewall. App access has been improved. Why did we have access problems when the application was 1400 and interface 1500? Will it not cause different access problems when you reduce the interface to 1400?

    • @ChrisGreer
      @ChrisGreer  ปีที่แล้ว

      Hello, I would need a pcap to be sure about what happened.

  • @abhijithks7419
    @abhijithks7419 6 ปีที่แล้ว

    Great video Chris: talking about mtu, if I have an svi does the Mtu on my vlan interface have an effect ? Can Mtu on vlan interface and actual physical interface be different ?

    • @ChrisGreer
      @ChrisGreer  6 ปีที่แล้ว +1

      Yes, they can. On most switches you can set an interface-level MTU

  • @saadqaddoori2633
    @saadqaddoori2633 5 ปีที่แล้ว

    Hi,
    is it possible to disable MSS option in windows or linux?

  • @dhruvneo
    @dhruvneo 4 ปีที่แล้ว

    Hi,
    Assuming only one interface and a P2P connection b/w two devices.
    If MTU size is configured to 9000, then changing the MSS to more than 1460 would make sense ??

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Hello Dhruv, That is a great question. In short - yes, if your MSS is 1460 on each side, then TCP will only take advantage of that segment size. However, in some cases the application in use can be jumbo-aware and adjust the MSS on its own. It really just depends on the stack/app in use.

  • @DikiciBurak
    @DikiciBurak 2 ปีที่แล้ว

    Could you share the trace file with us Chris ?

  • @hrishekessaraghueeti1258
    @hrishekessaraghueeti1258 5 ปีที่แล้ว

    Can we change the MSS size manually for an on going TCP connection?

    • @ChrisGreer
      @ChrisGreer  5 ปีที่แล้ว +1

      Hello - you can change the MSS at the stack level. Here is an example of how to do it in Windows 10. At the bottom of the article it shows how to manually adjust the MTU. This would work theoretically for any new connections. You can also adjust the MSS at the routing level as shown in the video.
      support.microsoft.com/en-us/help/900926/recommended-tcp-ip-settings-for-wan-links-with-a-mtu-size-of-less-than

  • @humayunakhtar2116
    @humayunakhtar2116 6 ปีที่แล้ว

    Thanks chris

  • @Udaridamarakula1234
    @Udaridamarakula1234 3 ปีที่แล้ว

    you have course in Udemy ?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Hey, I don’t. Just Pluralsight.

  • @mrnetworker3544
    @mrnetworker3544 6 ปีที่แล้ว

    Thanks!

  • @avishayhakim
    @avishayhakim 5 ปีที่แล้ว

    Hi Chris,
    nice videos on Wireshark and TCP
    do you have any video that explains how to calculate the throughput I can get between 2 end-points?
    thanks :)

    • @claay832
      @claay832 5 ปีที่แล้ว

      My take on that is to get a sample capture of any protocol across those two endpoints. Then sum up all the frame lengths across a minute (60secs) duration. Then whatever value of bytes or bits (8) you get, divide that value by 60. With that you can get the bit per sec or bit rate. There you go.
      (sum of all frame lengths across 1 minute duration) divided by 60 = bit rate or throughput. If you want payload or volume per minute, then no need to divide by 60.

  • @aboutturn
    @aboutturn 4 ปีที่แล้ว

    Question-Routers work on layer 3 of OSI model..they deal with IP network layer
    Where as tcp mss is layer 4.
    How can router along the path change tcp layer 4 information(mss).
    I am really very confused.Appreciate if anyone can answer my query.
    Thank you.

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Hello Himanshu - Great question. You are right - routers do deal with layer 3, network layer stuff. However, they also pay attention to layer 4. Think about access lists at the port level - those are all layer 4 things. So many of them have the ability to look beyond the layer 3 info in the packet. Many enterprise level routers (and even branch routers) have the ability to make adjustments to values in the TCP SYN. On Cisco routers, you can use the command 'ip tcp adjust-mss' to change the mss of the SYNs. The reason to do that is if there is an MTU on the next connection or later on in the path that will require a smaller MSS in order to avoid splitting up the packet, especially for packets with the DF bit set.
      Thanks for the comment!

    • @ankanshrivastava7517
      @ankanshrivastava7517 4 ปีที่แล้ว

      @@ChrisGreer Hello Chris - Thanks for all the details , i have a followup query that even if router has decreased the MSS of the source TCP packet , will it inform about it to source ? Because destination will get this updated detail and will send the reduced MSS size segment , however source will expect initial published MSS ? please correct me if am wrong in interpretation . how this will be resolved ? have you posted any video that can answer all these queries from scratch ? Thankyou !

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      @@ankanshrivastava7517 Great questions! The simple answer is no - the router will not report back to the sender that it changed the MSS. But if there is an MTU problem down the road and ICMP is enabled, the original sender may see some ICMP fragmentation needed messages. But this will happen at the network layer, not the transport layer.

  • @elalemanpaisa
    @elalemanpaisa 2 หลายเดือนก่อน

    now we just need to get rid of PPPoE and we are all happy

  • @soniaketh5784
    @soniaketh5784 6 ปีที่แล้ว

    nice

  • @saifu62
    @saifu62 4 ปีที่แล้ว

    So tcp window and mss is same!?

    • @ChrisGreer
      @ChrisGreer  4 ปีที่แล้ว +1

      Hello Saif - no they are quite different. The Maximum Segment Size is an advertisement of the maximum encompassed data that a station can receive in one segment. The TCP receive window is the amount of data that the receiver has space for in its receive buffer. So they are quite different. Check out my video on the TCP Receive window to clear up that topic. Thanks for the comment.

  • @MichaelGandy-r9l
    @MichaelGandy-r9l หลายเดือนก่อน

    Erin Roads

  • @StanislasFleuryStanislasFl-k8w
    @StanislasFleuryStanislasFl-k8w 2 หลายเดือนก่อน

    Austin Shoal

  • @AlcottSamantha
    @AlcottSamantha หลายเดือนก่อน

    204 Destinee Villages

  • @RichardBrooks-z7y
    @RichardBrooks-z7y 2 หลายเดือนก่อน

    Larson Stream

  • @howardcai1851
    @howardcai1851 ปีที่แล้ว

    router can change mss?😂