ip-protocol

Why does UDP have a length field in the header and TCP does not?

Why does UDP have a length field in the header and TCP does not? I am guessing that the length of the segment in TCP is inferred from the IP header but one should be able to do the same for a UDP datagram ...

What is the necessity of IP-in-IP?

There is even a standard for IP in IP encapsulation. What is the use case here? I can understand stuff like TCP over DNS, where IP might be unavailable, but if you can do IP in IP, couldn't you simply do regular IP? ...

How to implement RFC 3393 (Ipdv packet delay varation) in C?

Hello , I am building an Ethernet Application in which i will be sending packets from one side and receiving it on the other side. I want to calculate delay in packets at the receiver side as in RFC 3393. So I have to put a timestamps in the packet at the sender side and then take the timestamps at the receiver side as soon as i receive ...

How frequently IP packets are fragmented at the source host?

I know that if IP payload > MTU then routers usually fragment the IP packet. Finally all the fragmented packets are assembled at the destination using the fields IP-ID, IP fragment offsets and fragmentation flags. Max length of IP payload is 64K. Thus its very plausible for L4 to hand over payload which is 64K. If the L2 protocol is Ethe...

What does LAN/traffic congestion mean?

While talking about UDP I saw/heard congestion come up a few times. What does that mean? ...

Why Fragmentation is Done at IP why not for TCP/UDP.

I am looking for the reason Why Fragmentation is Done at IP level but why not for TCP/UDP. Suppose say my frame looks like this |MAC|IP|TCP|Payload|FCS. the whole size if say for eg: 1600. PathMTU happens here, why fragmentation is implemented @ IP level is my question and why not implemented @ TCP/UDP level/code. Thank in advance. ...

problem with IPv4 protocol...

using IPv4 protocol around 4 billion computers can be connected.(including classA, class B, class C networks). What should be done if the number exceeds beyond 4 billion? what are the consequences of such a situation? ...

Tuturials for problems with Xilinx's microblaze IP Stack

Hello, My team is using the microblaze and we're having some trouble with the ip stack. I am usually not an embedded programmer but I would like to learn how to help. Are there any tutorials about IP stacks? What are they? How are they programmed? How can I troubleshoot problems in the IP stack? Basically any info would help me. Thank...

How do I compute an RFC 791 IP header checksum?

I am rolling my own IP packets for a teach-yourself-Ruby project, and need to compute the IP header checksum (as described in RFC 791 p.14). One of the related questions that popped up when I typed my question here pointed me at RFC 1071, so I'm probably most of the way there, but just to add to Stack Overflow, can anyone (possibly Futur...

What is IP security?

Is there any brief explanation for IP security? And Why do we use it? ...

packet marking(IP Traceback) in C#

I'm looking for implementation of IP Traceback using packet marking algorithm in C#? I google it but could not find anything!!! any one know a website has this implementation ?? ...

Calculate an Internet (aka IP, aka RFC791) checksum in C#

Interestingly, I can find implementations for the Internet Checksum in almost every language except C#. Does anyone have an implementation to share? Remember, the internet protocol specifies that: "The checksum field is the 16 bit one's complement of the one's complement sum of all 16 bit words in the header. For purposes of c...

sending multiple tcp packets in an ip packet

is it possible to send multiple tcp or udp packets on a single ip packet? are there any specifications in the protocol that do not allow this. if it is allowed by the protocol but is generally not done by tcp/udp implementations could you point me to the relevant portion in the linux source code that proves this. are there any implemen...

Question regarding ip checksum code

unsigned short /* this function generates header checksums */ csum (unsigned short *buf, int nwords) { unsigned long sum; for (sum = 0; nwords > 0; nwords--) // add words(16bits) together { sum += *buf++; } sum = (sum >> 16) + (sum & 0xffff); //add carry over sum += (sum >> 16); //MY question: what ex...