first commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
## Lecture 1 (12:00)
|
||||
|
||||
### Flow Control
|
||||
|
||||
If sender sends data faster than recipient can consume it, the recipient must store the data in a buffer until it is ready - in RAM or storage.
|
||||
If this happens for a sustained period, the buffer gets full, and any excess data is discarded.
|
||||
Flow Control is the mechanism that ensures the sender stops transmitting before the buffer is full to prevent wasted bandwidth.
|
||||
|
||||
- Full Duplex (Two way negotiation)
|
||||
- Destination has received all frames sent so far
|
||||
- Destination is ready to receive more data.
|
||||
- Data and control info can flow simultaneously
|
||||
- Simplex (one way) transmission system, we cant have two-way negotiation
|
||||
|
||||
### Packets
|
||||
|
||||
- Frame / Packet is a chunk of data with a fixed or max size.
|
||||
- May stand alone or be fragments of larger items
|
||||
- Dividing data gives us chance to send management info between frames.
|
||||
- Extra overhead = Slight loss of efficiency.
|
||||
- Propagation Time vs Transmission Time
|
||||
- Propagation Time is the amount of time it takes for one particular signal to get from one point to another.
|
||||
- Transmission Time is the total amount of data that can be sent from one place to another in a given period of time.
|
||||
|
||||
#### Sliding Windows Flow Control
|
||||
|
||||
- Every packet is numbered in sequence.
|
||||
- **Window Size** defines the number of packets that can be sent by the sender without needing an acknowledgement from the recipient
|
||||
- Amount of space recipient reserves for buffer space to be used for conversations with this particular sender.
|
||||
- Recipient will periodically tell the sender the start of the window
|
||||
- This way , the sender can send packets up to (windowStart + windowSize - 1)
|
||||
- Used in the TCP protocol on the internet.
|
||||

|
||||

|
||||
|
||||
### Error Correction
|
||||
|
||||
- Fix the Error (FEC)
|
||||
- Ask for the frame containing the error to be re-transmitted - Automatic Repeat ReQuest / Query (ARQ)
|
||||
- Throw away the frame containing the error
|
||||
- Usual, and ARQ requires it
|
||||
- Ignore the error
|
||||
- Useful for low quality streaming multimedia data
|
||||
- Dangerous in networking, as it often matters where the error is.
|
||||
|
||||
#### Forward Error Correction (FEC)
|
||||
|
||||
- Represent something using more bits than needed. An error results in an invalid value that can be rounded to the nearest valid one.
|
||||
- The more extra bits, the better redundancy gained.
|
||||
- Simple ex.
|
||||
- Majority Voting:
|
||||
- Transmit each bit 3+ times (000, 111)
|
||||
- For the recipient, 001/010/100 are rounded to 0
|
||||
- 110/101/011 are rounded to 1
|
||||
|
||||
#### Re-transmission
|
||||
|
||||
- If we cannot fix the error, ask for retransmission
|
||||
- We need a return channel to ask, so we cannot do this over simplex channels ( ex. TV )
|
||||
- Must be unicast ( cannot be performed over broadcast / multicast data )
|
||||
- Data must be time independent ( cannot be used for realtime data such as multimedia )
|
||||
|
||||
#### Go-Back-N ARQ
|
||||
|
||||
- Pairs with Sliding Windows Flow Control.
|
||||
- Recipient discards a packet if it contains an error
|
||||
- You notice you have discarded the packet when you receive the next packet with an out of sequence number.
|
||||
- When noticed, discard packet and request sender to backpedal to last correct packet.
|
||||
- Sender re-transmits all packets started from missing packet.
|
||||
- Sender polls for a response if no acknowledgement is received (assumed lost)
|
||||
- Recipient re-sends last acknowledgement.
|
||||
|
||||
## Lecture 2 (15:00)
|
||||
|
||||
### Sliding Windows Flow Control
|
||||
|
||||
#### Parameters of Communication
|
||||
|
||||
- **A** will send 8 packets to **B**
|
||||
- Transmission time (time to put on network) for a packet is 1 "time unit"
|
||||
- Transmission time for acknowledgement is 0 "time units"
|
||||
- Propagation Time (time to travel through network) is 2 "time units"
|
||||
- **B**'s packet processing time is 1 "time unit" (then acknowledges)
|
||||
- Initial **Window Size** is 3
|
||||
|
||||
#### Legend
|
||||
|
||||
- Thick border (yellow bg) = Sliding Window
|
||||
- Black number = in process of send
|
||||
- Red number = sent but no acknowledge
|
||||
- Green number = sent and acknowledged
|
||||
|
||||

|
Reference in New Issue
Block a user