Transmission Control Protocol
De Viquipèdia
Capa | Protocols |
Aplicació | HTTP, FTP, TFTP, SMTP, POP3, IMAP, DNS, IRC, SSH, Telnet, TLS i SSL, NFS, NNTP, NTP, SMB/CIFS, SNMP, Gopher, RTP, RTCP, SOAP, SIP |
Transport | TCP, UDP, SCTP, SPX, NetBIOS |
Xarxa | IP (IPv4, IPv5, IPv6), ICMP, IGMP, AppleTalk, ARP, IPX, NetBEUI, X.25 |
Enllaç de dades | ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi |
Física | Cable coaxial, Cable de fibra òptica, Cable de parells trenats, Microones, Ràdio, RS-232 |
* segons el model TCP/IP | |
edita |
Transmission Control Protocol (TCP) és un protocol orientat a la connexió dintre del nivell de transport del model OSI que permet l'entrega de paquets de manera fiable, en el cas de TCP anomenats segments. Això significa que abans de poder transmetre cap dada, és necessari establir una connexió entre els dos nodes que es volen comunicar. Un cop establerta la connexió, el protocol s'encarrega de garantir que les dades arriben de manera correcta, ordenada i sense duplicats al punt de destinació. Un cop finalitza la transmissió és necessari tancar la connexió. Les aplicacions que utilitzen TCP per comunicar-se no s'han de preocupar de la integritat de la informació, no han de fer cap tipus de control d'errors atès que poden assumir que tot el que reben és correcte, el mateix protocol s'encarrega de les tasques de control de flux i d'errors.
La fiabilitat associada a aquest protocol té un cost en la quantitat de recursos necessaris que el fan inadequat per alguns usos, com les retransmissions en temps real de vídeo, en què és preferible descartar un paquet que no ha arribat o que ho ha fet en mal estat atès que per a l'emissor pot resultar difícil retransmetre'l i per al receptor seria un problema esperar. Per a aquests casos existeix el protocol UDP.
Bit offset | Bits 0–3 | 4–7 | 8–15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Port origen | Port destí | ||||||||||||||||||||||||||||||
32 | Número de seqüència | |||||||||||||||||||||||||||||||
64 | Número d'Acknowledgment | |||||||||||||||||||||||||||||||
96 | Offset dades | Reservat | CWR | ECE | URG | ACK | PSH | RST | SYN | FIN | Finestra | |||||||||||||||||||||
128 | Checksum | Urgent pointer | ||||||||||||||||||||||||||||||
160 | Opcions (opcional) | |||||||||||||||||||||||||||||||
160/192+ | Dades |
[edita] Procés de connexió
- 1.- El client envia una sol·licitud de connexió al servidor per mitjà d'un datagrama amb l'indicador SYN
- 2.- Si el servidor accepta la connexió amb el client li envia un datagrama amb els indicadors SYN i ACK
- 3.- El client confirma la connexió enviat al servidor un datagrama amb l'indicador ACK.
[edita] Transmissió de dades
Durant la transmissió de dades es porta a terme un control de congestió de la xarxa. Per a aquest control es fan servir combinacions d'algorismes. Un d'aquests algorismes és Slow-Start.
[edita] Procés de desconnexió
El final de la connexió pot ser a iniciativa del client o del servidor de manera indiferent.
- 1.- Qui desitja finalitzar la connexió envia a l'altre un datagrama amb els indicadors FIN i ACK.
- 2.- L'altre li retorna un datagrama amb l'indicador ACK. I tot segit li envia un altre amb els indicadors FIN i ACK.
- 3.- Qui ha iniciat la seqüència de desconnexió envia un datagrama amb l'indicador ACK.