Q: What are protocols?
A: Protocols are a set of rules and regulation on how to communicate.
________________________________________________________________________________________________________________________________________________
|
| The networking applications themselves. example: Email-client, browser, Comand Line (CL also provides ways to interact over the web).
| This layer is responsible for supplying an interface for a user to communicate
| with over the web. It deals with showing requested resources (e.g text, images, videos)
Application |
Layer | Used protocol: Http, Https (for data assembling).
| Protocols that have metadata (headers) for request/responses, along with data, for the application to use.
|
|
| Data type (PDU): User Data , user specific data (e.g user input, user requested resources)
____________|_________________________________________________________________________________________________________________________________
|
| This layer is responsible for recieving the encoded data, decoding it, making data ready to use by application layer.
| On the other hand it also is responsible for encrypting application layer data to be ready to be transported.
| This layer also deals with compression of formated data to be ready to be sent out.
Presentation| Character encoding also happens at this layer.
Layer |
| Used protocols: Http (for character encoding)
|
| Data type (PDU): Formated Data
| NOTE!!! many people consider Presentation Layer to be part of the Application Layer
_______|__________________________________________________________________________________________________________________________________
|
| This layer is responsible for managing all the incomming/outgoing sessions, opening them and destroying them.
| It keeps session data for session oppened.
Session | Sessions could be oppened by Client Softwear such as e-mail, browsers, command line etc...
Layer |
| Used protocols: Does not use protocols, this layer basically keeps session data and add it to the formated data from Presentation Layer
|
| Data type (PDU): Formated Data
| NOTE!!! You can check current sessions using the netstat comand on CMD.
| NOTE!!! This is the last fully softwear level, all three of the above layers were using softwear to process data.
_______|__________________________________________________________________________________________________________________________________
|
| This layer is responsible for segmenting the data encoded/encrypted in session layer into small chunks of data.[ ] -> [][][]
| This layer is also responsible for assembling segmented data recieved. [][][] -> [ ]
| Data type (PDU): Segment
|
Transport | Each segment must have a sequence-number added to it to keep it in order, this is since the segments might not arrive in order.
Layer |
| The sequence-number is added into a header thats attached to every segment:
| [segment|header:{seq_num:1}] [segment|header:{seq_num:2}]...
|
| The segment-header also includes the maximum-segment-size attr that tells what is the size of the segment in bits.
| [segment|header:{seq_num:1,mss:256}] [segment|header:{seq_num:2, mss:256}]...
|
| The type connection relayebility os also determined here, and added to the segment header. Connection relayebility has to with UDP/TCP.
| TCP (Transfer Control Protocol) - connection oriented, relayable connection. This protocol is used for data that is important.
| UDP (User Datagram Protocol) - connectionless, un-relayable connection. This protocol is used for un-important data,
|
| PORT NUMBERS
| ------------
| This layer also adds the protocol corresponding port number.
| For example: http uses port 80, https uses 443, ftp uses 20,21.
| If your using TCP or UDP your using these 16bit port numbers.
| The segments now look as such:
| [segment|header:{seq_num:1,mss:256,port:80}] [segment|header:{seq_num:2, mss:256, port:80}]...
|
| What is connection oriented? Its the use of aknowledgment of the two sides (transmiting/recieving) of each other to promise a secure connection.
|
| ------------------------------------------------------------
| TCP (Transfer Control Protocol)
| ------------------------------------------------------------
|
| There are two phases for transmitting segments over TCP: Three way handshake & transmition with acknowledgment.
| ================ Three way handsake =====================>
| 1) Check its the right recipient.
| 2) agree on the file size and segments to transmit.
| 3) agree on protocol and other params
| <=========================================================
|
| ---------- segment.1 ------------> sending segment with segment-number
|<---------- Acknowledge.send.2 ---- segment recieved, sending aknowledgement & next segment-number to send
| ---------- segment.2 ----\-------> Segment got lost or was corrupted on the way. Recipient does not send acknowledgment.
| --- wait for acknowledgment ?
| --- did not recieve, send again !
| ---------- segment.2 ------------> This time segment was recieved.
| <--------- Aknowledgment.send.3
| ---------- segment.3 ------------>
|
| NOTE!!! HTTP/HTTPS/FTP/TELENET all use TCP, this is since connection relayebility is needed.
|
| ------------------------------------------------------------
| UDP (User Datagram Protocol)
| ------------------------------------------------------------
| UDP is used for unimportent data or data that needs speed of transfer, for examples:
| Video streaming, needs to transmit 30/40fps at optimal setting (no buffer)
| Voiceover IP, needs fast data transmition for voice quality.
| Multiplayer games, needs fast data transmition for game accuracy.
|
| ============== NO HANDSHAKE OR ANY CONNECTION RELAYEBILITY ================
|
| ------------- segment.1 -------------> transmited into the ether
| ------------- segment.2 -------------> transmited into the ether
| ------------- segment.3 -------------> transmited into the ether
|
| NOTE!!! Used for LIVE stuff mainly.
|
| ---------------- OTHER PROTOCOLS ---------------------------
| ------------------------------------------------------------
| RIP (Routing Information Protocol) PROTOCOL
| ------------------------------------------------------------
| This is the protocol that router speaks with each other to.
| RIP uses UDP for fast transfer.
|
| ------------------------------------------------------------
| DNS (Domain Name System)
| ------------------------------------------------------------
| Protocol for Domain Name Servers to communicate and translate ip number to domain names.
| Uses both UDP & TCP.
|
_______|________________________________________________________________________________________________________________________________________________
|
| This layers responsibility has to do with routing, also known as Best Path Determination.
| Since the network is devided into many smaller local networks, connected by routers/gateways, this layer build the path
| of routers between the Source IP and the Destination IP.
|
| This layer takes the segments from the transport layer, and adds routing ioformation to it, packing up a segment to
Network | new unit called "packet".
Layer |
| Additional data this layer adds to the network layer header is Source IP (own ip), and Destination IP (requested ip).
| The process of resolution of IPs is called Host Adressing.
|
| This layer contains also the TCP/IP model, thought by many to be a seperate layer, though this assumption is misleading since
| TCP/IP is only one of the protocols supported.
|
| After the procedure of Best Path Determination, the packet is issued to the data link layer to be transmited out.
|
| Data type (PDU): Packet
|
|
_______|__________________________________________________________________________________________________________________________________
|
| This layers whole responsibility is to deliver/send the packets to next router/gateway on the Best Path determined in the network layer.
| The data link layer makes decision based on physical adresses (MAC adresses), and
Data Link | provides a reliable way to transit the data across physical links.
Layer |
| The recieved packet is wrraped again with a Data Link header that contains the MAC adress of the next router on path.
| The devices that can understand MAC adresses, such as switches, are called layer 2 devices, this is since layer 2 (Data Link Layer)
| contain the ability to read/write MAC adresses.
| The Source IP and and Destination IP from the previous layer are converted to Source MAC (originating device) & Destination MAC (destination | device), and this is added to the layer
| DL layer header.
| NOTE!!! here the layer deal with MAC & destination devices, previous layer delt with IPs not MAC.
|
| The packet wrraped with the DL layer header (also known as Ethernet header) is now called a frame.
| Data type (PDU): Frames.
|
_______|__________________________________________________________________________________________________________________________________
|
| In this layer the packets from the previous level are serialized via hardware into binary, and transmited out to the ether.
| This layer is the most complex layer since it deals with serializing higher level data into binary, this means dependens on many types of
Physical | chip and card types (wifi, cable, sattalite).
Layer |
| The physical layer provides an electrical, mechanical, and procedural interface to the transmission medium.
| The shapes and properties of the electrical connectors, the frequencies to broadcast on,
| the line code to use and similar low-level parameters, are specified here.
|
| Within the semantics of the OSI model, the physical layer translates logical
| communications requests from the data link layer into hardware-specific operations to
| cause transmission or reception of electronic signals.
|
_______|__________________________________________________________________________________________________________________________________________