Professional Documents
Culture Documents
3 Tầng mạng
Thiết lập hoặc ngắt mạch kết nối điện (electrical connection) với một môi trường truyền dẫn phương
tiện truyền thông (transmission medium).
Tham gia vào quy trình mà trong đó các tài nguyên truyền thông được chia sẻ hiệu quả giữa nhiều
người dùng. Chẳng hạn giải quyết tranh chấp tài nguyên (contention) và điều khiển lưu lượng.
Điều chế (modulation), hoặc biến đổi giữa biểu diễn dữ liệu số (digital data) của các thiết bị người
dùng và các tín hiệu tương ứng được truyền qua kênh truyền thông (communication channel).
Cáp (bus) SCSI song song hoạt động ở tầng cấp này. Nhiều tiêu chuẩn khác nhau của Ethernet dành cho
tầng vật lý cũng nằm trong tầng này; Ethernet nhập tầng vật lý với tầng liên kết dữ liệu vào làm một. Điều
tương tự cũng xảy ra đối với các mạng cục bộ như Token ring, FDDI và IEEE 802.11.]]
Tầng 2: Tầng liên kết dữ liệu (Data-Link Layer)
Tầng liên kết dữ liệu cung cấp các phương tiện có tính chức năng và quy trình để truyền dữ liệu giữa các
thực thể mạng (truy cập đường truyền, đưa dữ liệu vào mạng), phát hiện và có thể sửa chữa các lỗi trong
tầng vật lý nếu có. Cách đánh địa chỉ mang tính vật lý, nghĩa là địa chỉ (địa chỉ MAC) được mã hóa cứng
vào trong các thẻ mạng (network card) khi chúng được sản xuất. Hệ thống xác định địa chỉ này không có
đẳng cấp (flat scheme). Chú ý: Ví dụ điển hình nhất là Ethernet. Những ví dụ khác về các giao thức liên kết
dữ liệu (data link protocol) là các giao thức HDLC; ADCCP dành cho các mạng điểm-tới-điểm hoặc
mạng chuyển mạch gói (packet-switched networks) và giao thức Aloha cho các mạng cục bộ. Trong các
mạng cục bộ theo tiêu chuẩn IEEE 802, và một số mạng theo tiêu chuẩn khác, chẳng hạn FDDI, tầng liên
kết dữ liệu có thể được chia ra thành 2 tầng con: tầng MAC (Media Access Control - Điều khiển Truy nhập
Đường truyền) và tầng LLC (Logical Link Control - Điều khiển Liên kết Logic) theo tiêu chuẩn IEEE
802.2.
Tầng liên kết dữ liệu chính là nơi các thiết bị chuyển mạch (switches) hoạt động. Kết nối chỉ được cung
cấp giữa các nút mạng được nối với nhau trong nội bộ mạng.
Tầng 3: Tầng mạng (Network Layer)
Tầng mạng cung cấp các chức năng và quy trình cho việc truyền các chuỗi dữ liệu có độ dài đa dạng, từ
một nguồn tới một đích, thông qua một hoặc nhiều mạng, trong khi vẫn duy trì chất lượng dịch vụ (quality
of service) mà tầng giao vận yêu cầu. Tầng mạng thực hiện chức năng định tuyến,.Các thiết bị định
tuyến (router) hoạt động tại tầng này — gửi dữ liệu ra khắp mạng mở rộng, làm cho liên mạng trở nên khả
thi (còn có thiết bị chuyển mạch (switch) tầng 3, còn gọi là chuyển mạch IP). Đây là một hệ thống định vị
địa chỉ lôgic (logical addressing scheme) – các giá trị được chọn bởi kỹ sư mạng. Hệ thống này có cấu trúc
phả hệ. Ví dụ điển hình của giao thức tầng 3 là giao thức IP.
Tầng 4: Tầng giao vận (Transport Layer)
Tầng giao vận cung cấp dịch vụ chuyên dụng chuyển dữ liệu giữa các người dùng tại đầu cuối, nhờ đó các
tầng trên không phải quan tâm đến việc cung cấp dịch vụ truyền dữ liệu đáng tin cậy và hiệu quả. Tầng
giao vận kiểm soát độ tin cậy của một kết nối được cho trước. Một số giao thức có định hướng trạng thái
và kết nối (state and connection orientated). Có nghĩa là tầng giao vận có thể theo dõi các gói tin và truyền
lại các gói bị thất bại. Một ví dụ điển hình của giao thức tầng 4 là TCP. Tầng này là nơi các thông điệp
được chuyển sang thành các gói tin TCP hoặc UDP. Ở tầng 4 địa chỉ được đánh là address ports, thông qua
address ports để phân biệt được ứng dụng trao đổi.
Tầng 5: Tầng phiên (Session layer)
Tầng phiên kiểm soát các (phiên) hội thoại giữa các máy tính. Tầng này thiết lập, quản lý và kết thúc các
kết nối giữa trình ứng dụng địa phương và trình ứng dụng ở xa. Tầng này còn hỗ trợ hoạt động song
công (duplex) hoặc bán song công (half-duplex) hoặc đơn công(Simplex) và thiết lập các quy trình đánh
dấu điểm hoàn thành (checkpointing) - giúp việc phục hồi truyền thông nhanh hơn khi có lỗi xảy ra, vì
điểm đã hoàn thành đã được đánh dấu - trì hoãn (adjournment), kết thúc (termination) và khởi động lại
(restart). Mô hình OSI uỷ nhiệm cho tầng này trách nhiệm "ngắt mạch nhẹ nhàng" (graceful close) các
phiên giao dịch (một tính chất của giao thức kiểm soát giao vận TCP) và trách nhiệm kiểm tra và phục hồi
phiên, đây là phần thường không được dùng đến trong bộ giao thức TCP/IP.
Tầng 6: Tầng trình diễn (Presentation layer)
Lớp trình diễn hoạt động như tầng dữ liệu trên mạng. lớp này trên máy tính truyền dữ liệu làm nhiệm vụ
dịch dữ liệu được gửi từ tầng Application sang dạng Fomat chung. Và tại máy tính nhận, lớp này lại
chuyển từ Fomat chung sang định dạng của tầng Application. Lớp thể hiện thực hiện các chức năng sau: -
Dịch các mã ký tự từ ASCII sang EBCDIC. - Chuyển đổi dữ liệu, ví dụ từ số interger sang số dấu phảy
động. - Nén dữ liệu để giảm lượng dữ liệu truyền trên mạng. - Mã hoá và giải mã dữ liệu để đảm bảo sự
bảo mật trên mạng.
Tầng 7: Tầng ứng dụng (Application layer)
Tầng ứng dụng là tầng gần với người sử dụng nhất. Nó cung cấp phương tiện cho người dùng truy nhập
các thông tin và dữ liệu trên mạng thông qua chương trình ứng dụng. Tầng này là giao diện chính để người
dùng tương tác với chương trình ứng dụng, và qua đó với mạng. Một số ví dụ về các ứng dụng trong tầng
này bao gồm Telnet, Giao thức truyền tập tin FTP và Giao thức truyền thư điện tử SMTP, HTTP, X.400
Mail remote
Tần
g
S
Các thí dụ khác Bộ IP UM
Bộ TCP/IP SS7 Bộ AppleTalk Bộ OSI N
nhau X TS
T A
# ê
n
Ứ
n
HTTP, SMTP, S ISUP, IN FTAM, A
g
HL7, Modbus, S MPP, SNMP, FT AP, MAP, X.400, P
7 d AFP
IP P, Telnet, NFS, N TUP, TC X.500, P
ụ
TP AP DAP C
n
g
T
rì TDI, ASCII, EB ISO
6 n CDIC, MIDI, M XDR, SSL, TLS AFP 8823,
h PEG X.226
d
iễ
n
P
h
iê
n D
Named Session ISO
là ASP, ADSP, NWLin L
5 Pipes, NetBIOS, establishment 8327,
m ZIP, PAP k C
SAP, SDP for TCP X.225
?
v
iệ
c
G TP0,
ia TP1,
o TCP, UDP, RTP, ATP, NBP, A TP2, SPX, R
4 NetBEUI
v SCTP EP, RTMP TP3, IP
ậ TP4, OS
n PF
RR
C
(Ra
M
X.25 (P dio
ạ IP, ICMP, IPsec, MTP-
3 NetBEUI, Q.931 DDP LP), CL IPX Res
n ARP, RIP, BGP 3, SCCP
NP our
g
ce
Con
trol)
MA
Ethernet, 802.11 IEEE
C(
L (WiFi), Token LocalTalk, To 802.3 f
X.25 (L S Me
iê Ring, FDDI, PP kenTalk, Ether raming,
APB), T D dia
2 n P, HDLC, MTP-2 Talk, AppleTa Ethern
oken L Acc
k Q.921, Frame lk Remote et II
Bus C ess
ết Relay, ATM, Fi Access, PPP framin
Con
bre Channel g
trol)
mô hình TCP/ip
Bách khoa toàn thư mở Wikipedia
BGP
DHCP
DNS
FTP
HTTP
IMAP
LDAP
MGCP
NNTP
NTP
POP
ONC/RPC
RTP
RTSP
RIP
SIP
SMTP
SNMP
SSH
Telnet
TLS/SSL
XMPP
xem tất cả...
TCP
UDP
CCP
SCTP
RSVP
xem tất cả...
ARP
NDP
OSPF
Tunnels
2TP
PPP
MAC
Ethernet
DSL
ISDN
FDDI
xem tất cả...
X
T
S
Bài viết này cần thêm chú thích nguồn gốc để kiểm chứng thông
tin. Mời bạn giúp hoàn thiện bài viết này bằng cách bổ sung chú
thích tới các nguồn đáng tin cậy. Các nội dung không có nguồn có
thể bị nghi ngờ và xóa bỏ.
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt
lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các
"kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo
chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của
nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng dụng kết quả, trong đó
có WWW, thư điện tử và Secure Shell.
Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên dưới và một ứng dụng bên trên.
Các ứng dụng thường cần các kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau, trong khi đó, giao
thức IP không cung cấp những dòng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin cậy.
TCP làm nhiệm vụ của tầng giao vận trong mô hình OSI đơn giản của các mạng máy tính.
Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng. TCP phân chia dòng byte
này thành các đoạn (segment) có kích thước thích hợp (thường được quyết định dựa theo kích thước
của đơn vị truyền dẫn tối đa (MTU) của tầng liên kết dữ liệu của mạng mà máy tính đang nằm trong đó).
Sau đó, TCP chuyển các gói tin thu được tới giao thức IP để gửi nó qua một liên mạng tới mô đun TCP tại
máy tính đích. TCP kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin
một "số thứ tự" (sequence number). Số thứ tự này còn được sử dụng để đảm bảo dữ liệu được trao cho ứng
dụng đích theo đúng thứ tự. Mô đun TCP tại đầu kia gửi lại "tin báo nhận" (acknowledgement) cho các gói
tin đã nhận được thành công; một "đồng hồ" (timer) tại nơi gửi sẽ báo time-out nếu không nhận được tin
báo nhận trong khoảng thời gian bằng một round-trip time (RTT), và dữ liệu (được coi là bị thất lạc) sẽ
được gửi lại. TCP sử dụng checksum (giá trị kiểm tra) để xem có byte nào bị hỏng trong quá trình truyền
hay không; giá trị này được tính toán cho mỗi khối dữ liệu tại nơi gửi trước khi nó được gửi, và được kiểm
tra tại nơi nhận.
Mục lục
Không như giao thức UDP - giao thức có thể lập tức gửi gói tin mà không cần thiết lập kết nối, TCP đòi
hỏi thiết lập kết nối trước khi bắt đầu gửi dữ liệu và kết thúc kết nối khi việc gửi dữ liệu hoàn tất. Cụ thể,
các kết nối TCP có ba pha:
1. LISTEN
2. SYN-SENT
3. SYN-RECEIVED
4. ESTABLISHED
5. FIN-WAIT
6. CLOSE-WAIT
7. CLOSING
8. LAST-ACK
9. TIME-WAIT
10. CLOSER
LISTEN
đang đợi yêu cầu kết nối từ một TCP và cổng bất kỳ ở xa (trạng thái này thường do các TCP
server đặt)
SYN-SENT
đang đợi TCP ở xa gửi một gói tin TCP với các cờ SYN và ACK được bật (trạng thái này thường
do các TCP client đặt)
SYN-RECEIVED
đang đợi TCP ở xa gửi lại một tin báo nhận sau khi đã gửi cho TCP ở xa đó một tin báo nhận kết
nối (connection acknowledgment) (thường do TCP server đặt)
ESTABLISHED
cổng đã sẵn sàng nhận/gửi dữ liệu với TCP ở xa (đặt bởi TCP client và server)
TIME-WAIT
đang đợi qua đủ thời gian để chắc chắn là TCP ở xa đã nhận được tin báo nhận về yêu cầu kết thúc
kết nối của nó. Theo RFC 793, một kết nối có thể ở tại trạng thái TIME-WAIT trong vòng tối đa 4
phút.
Thiết lập kết nối[sửa | sửa mã nguồn]
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-way
handshake) Trước khi client thử kết nối với một server, server phải đăng ký một
cổng và mở cổng đó cho các kết nối: đây được gọi là mở bị động. Một khi mở bị
động đã được thiết lập thì một client có thể bắt đầu mở chủ động. Để thiết lập một
kết nối, quy trình bắt tay 3 bước xảy ra như sau:
1. Client yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (gói tin TCP)
tới server, trong gói tin này, tham số sequence number được gán cho một
giá trị ngẫu nhiên X.
2. Server hồi đáp bằng cách gửi lại phía client bản tin SYN-ACK, trong gói
tin này, tham số acknowledgment number được gán giá trị bằng X + 1,
tham số sequence number được gán ngẫu nhiên một giá trị Y
3. Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tin
ACK, trong bản tin này, tham số sequence number được gán cho giá trị
bằng X + 1 còn tham số acknowledgment number được gán giá trị bằng
Y+1
Tại thời điểm này, cả client và server đều được xác nhận rằng, một kết nối đã được
thiết lập.
Truyền dữ liệu[sửa | sửa mã nguồn]
Một số đặc điểm cơ bản của TCP để phân biệt với UDP:
Chuỗi số thứ tự gói và cửa sổ trong TCP hoạt động giống như một cái đồng hồ. Kích thước
của cửa sổ (đo bằng byte) được thiết lập bởi khả năng tiếp nhận của máy tính nhận. Cửa sổ
này được dịch đi mỗi khi máy tính nhận nhận được dữ liệu và gửi tin báo nhận. Khi chuỗi
thứ tự tăng đến tối đa thì lại quay lại về 0.
Kích thước của cửa sổ là chiều dài (byte) của khối dữ liệu có thể lưu trong bộ đệm
của bên nhận. Bên gửi chỉ có thể gửi tối đa lượng thông tin chứa trong cửa sổ này
trước khi nhận được tin báo nhận.
Dãn kích thước cửa sổ[sửa | sửa mã nguồn]
Để tận dụng khả năng truyền dẫn của mạng thì cửa sổ dùng trong TCP cần được
tăng lên. Trường điều khiển kích thước cửa sổ của gói TCP có độ dài là 2 byte và do
đó kích thước tối đa của cửa sổ là 65.535 byte.
Do trường điều khiển không thể thay đổi nên người ta sử dụng một hệ số dãn nào
đó. Hệ số này được định nghĩa trong tài liệu RFC 1323 có thể sử dụng để tăng kích
thước tối đa của cửa sổ từ 65.535 byte lên tới 1 gigabyte. Tăng kích thước cửa sổ
lớn hơn nữa cũng cần thiết trong TCP Tuning.
Việc tăng kích thước cửa sổ chỉ được dùng trong giao thức bắt tay 3 pha. Giá trị của
trường co giãn cửa sổ thể hiện số bit cần được dịch trái đối với trường kích thước
cửa sổ. Hệ số dãn có thể thay đổi từ 0 (không dãn) tới 14 (dãn tối đa).
Kết thúc kết nối[sửa | sửa mã nguồn]
Để kết thúc kết nối hai bên sử dụng quá trình bắt tay 4 bước và chiều của kết nối kết
thúc độc lập với nhau. Khi một bên muốn kết thúc, nó gửi đi một gói tin FIN và bên
kia gửi lại tin báo nhận ACK. Vì vậy, một quá trình kết thúc tiêu biểu sẽ có 2 cặp
gói tin trao đổi.
Một kết nối có thể tồn tại ở dạng "nửa mở": một bên đã kết thúc gửi dữ liệu nên chỉ
nhận thông tin, bên kia vẫn tiếp tục gửi.
High Speed TCP của Sally Floyd trong tài liệu RFC 3649
TCP Vegas của Brakmo và Peterson (làm việc tại Đại học Arizona)
TCP Westwood của Đại học California tại Los Angeles
BIC TCP của Injong Rhee (làm việc tại Đại học North Carolina)
H-TCP của Viện Hamilton
Fast TCP (Fast Active queue management Scalable Transmission Control
Protocol) của Caltech.
TCP Hybla của Đại học Bologna
Bên cạnh đó cũng có rất nhiều nghiên cứu so sánh sự công bằng và hiệu suất của
TCP khi sử dụng các thuật toán tránh tắc nghẽn khác nhau.
+ Bít 0 - 3 4-9 10 - 15 16 - 31
32 Sequence Number
64 Acknowledgement Number
Data
96 Reserved Flags Window
Offset
160/192+ Data
0 Source address
32 Destination address
Data
192 Reserved Flags Window
Offset
257/289+ Data
Các địa chỉ nguồn và đích là các địa chỉ IPv4. Giá trị của trường protocol là 6 (giá trị dành cho
TCP, xem thêm: Danh sách số hiệu giao thức IPv4). Giá trị của trường TCP length field là độ dài
của toàn bộ phần header và dữ liệu của gói TCP.
Urgent pointer
Nếu cờ URG bật thì giá trị trường này chính là số từ 16 bít mà số thứ tự gói tin (sequence number)
cần dịch trái
Options
Đây là trường tùy chọn. Nếu có thì độ dài là bội số của 32 bít.
Dữ liệu
Trường cuối cùng không thuộc về header. Giá trị của trường này là thông tin dành cho các tầng
trên (trong mô hình 7 lớp OSI). Thông tin về giao thức của tầng trên không được chỉ rõ trong phần
header mà phụ thuộc vào cổng được chọn
SỰ KHÁC BIỆT GIỮA OSI VÀ TCP:
mô hình OSI có 7 tầng còn TCP 4 tầng
1.application
2.presentation
3.sesion
4.transport • UDP and TCP
5.network • ip
6.data link • ethernet
7.physical • ethernet