Nothing Special   »   [go: up one dir, main page]

Iot m4

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

1.

TCP (Transmission Control Protocol):

- Connection-oriented protocol requiring session establishment before data


exchange.

- Ensures reliable data delivery through features like sequence reassembly, flow
control, and retransmission of lost packets.

- Suited for applications requiring guaranteed delivery and error-free


transmission.

- Commonly used in scenarios where data integrity is paramount, such as


industrial applications.

2. UDP (User Datagram Protocol):

- Connectionless protocol with no guarantee of delivery.

- Provides faster transmission with lower overhead compared to TCP.

- Preferred for real-time data traffic, multimedia streaming, and network services
like DNS, NTP, SNMP, and DHCP.

- More suitable for applications prioritizing performance and low latency over
reliability.

3. Considerations for IoT Applications:


- Choice of transport layer impacts both lower and upper layers of the protocol
stack.

- TCP may be overkill for constrained IoT devices and networks due to overhead
and session establishment requirements.

- UDP is often preferred for IoT applications, especially over LLNs (Low-Power
and Lossy Networks), due to lower overhead and better adaptability to constrained
environments.

- Protocols like CoAP typically use UDP for IoT applications.

- Optimizations and adjustments to application layer protocols may be necessary


based on the chosen transport layer and network characteristics.

4. Impact on Multicast and Interoperability:

- Multicast, useful for sending messages to multiple IoT devices simultaneously,


exclusively utilizes UDP.

- Certification and compliance profiles like Wi-SUN specify the stack from
Layer 1 to Layer 4 to ensure interoperability and compatibility with different
options of the stack while being IP-compatible.
 Source port: this is a 16 bit field that specifies the port number of the sender.
Destination port: this is a 16 bit field that specifies the port number of the
receiver.
 Sequence number: the sequence number is a 32 bit field that indicates how
much data is sent during the TCP session. When you establish a new TCP
connection (3 way handshake) then the initial sequence number is a random
32 bit value. The receiver will use this sequence number and sends back an
acknowledgment. Protocol analyzers like wireshark will often use a relative
sequence number of 0 since it’s easier to read than some high random
number.
 Acknowledgment number: this 32 bit field is used by the receiver to request
the next TCP segment. This value will be the sequence number incremented
by 1
 . DO: this is the 4 bit data offset field, also known as the header length. It
indicates the length of the TCP header so that we know where the actual data
begins.
 RSV: these are 3 bits for the reserved field. They are unused and are always
set to 0.
 Flags: there are 9 bits for flags, we also call them control bits. We use them
to establish connections, send data and terminate connections:
 URG: urgent pointer. When this bit is set, the data should be treated as
priority over other data.
 ACK: used for the acknowledgment.
 PSH: this is the push function. This tells an application that the data should
be transmitted immediately and that we don’t want to wait to fill the entire
TCP segment.
 RST: this resets the connection, when you receive this you have to terminate
the connection right away. This is only used when there are unrecoverable
errors and it’s not a normal way to finish the TCP connection.
 SYN: we use this for the initial three way handshake and it’s used to set the
initial sequence number. FIN: this finish bit is used to end the TCP
connection. TCP is full duplex so both parties will have to use the FIN bit to
end the connection. This is the normal method how we end an connection.
 Window: the 16 bit window field specifies how many bytes the receiver is
willing to receive. It is used so the receiver can tell the sender that it would
like to receive more data than what it is currently receiving. It does 103 so
by specifying the number of bytes beyond the sequence number in the
acknowledgment field.
 Checksum: 16 bits are used for a checksum to check if the TCP header is
OK or not.
 Urgent pointer: these 16 bits are used when the URG bit has been set, the
urgent pointer is used to indicate where the urgent data ends.
 Options: this field is optional and can be anywhere between 0 and 320 bits
Here's a simplified explanation of MPTCP:

- MPTCP (Multipath TCP) aims to use multiple network paths for a single
connection while maintaining compatibility with regular TCP.
- It acts as a layer between the socket interface and TCP subflows, managing
the underlying TCP connections.
- MPTCP uses additional signaling between end hosts, achieved through
TCP options.
- To establish an MPTCP connection, a three-way handshake is used with
special options in the SYN segment to negotiate MPTCP usage.
- Each TCP subflow is uniquely identified using a token, allowing MPTCP
to link subflows to the existing connection.
- Subflows are established through another three-way handshake, and
authentication is performed using random nonces.
- Once subflows are established, data can be transmitted over any of them.
Data can be retransmitted on another subflow to recover from losses.
- MPTCP uses sequence numbers to ensure data is received in order over
each subflow and allows for loss detection.

Here's a simplified comparison between DCCP and SCTP:

DCCP (Datagram Congestion Control Protocol):

- Message-oriented transport layer protocol.


- More secure than TCP, with a 48-bit packet ID making it harder for attackers to
hack data packets.

- Used for time-critical data transfers like media streaming and VoIP.

SCTP (Stream Control Transmission Protocol):

- Message-oriented transport layer protocol.

- Uses congestion control for reliable data transfer.

- Data is secured using a 4-way handshake along with a 12-byte header.

- Supports multi-homing, ensuring reliable data delivery to the destination.

 TLS: TLS stands for Transport Layer Security . TLS is a security


protocol which uses symmetric cryptography to secure data. This
protocol has been now prohibited from use due to security
considerations.
 DTLS: DTLS stands for Datagram Transport Layer Security.
DTLS is based on Transport Layer Security (TLS) protocol. It is a
stream oriented transport layer protocol. This is a security protocol
designed against Message forgery, tampering and eavesdropping.
However, large packet size, packet reordering and loss of datagram
are some of the major Drawbacks of this protocol stack.

You might also like