



















Preview text:
lOMoAR cPSD| 58833082 Mạng máy tính
Chapter 1: Computer Networks and the Internet
1.1.What is the Internet?
1.1.1. A Nuts and Bolts Description(Thành phần)
• Billions of connected computing devices. - host = end system
• Communication links: kết nối trực tiếp giữa 2 thiết bị.
• Packet switches: trung chuyển gói tin => tạo điều kiện cho trao đổi dữ liệu giữa các end systems.
- router: use in the network core.
- witches: use in access networks.
• Protocols: giao thức giống như 2 người giao tiếp với nhau 1 người hỏi người
kia trả lời lịch sự cuộc trò chuyện diễn ra tiếp tục, 2 giao thức quan trọng nhất.
- Transmission Control Protocol(TCP).
- Internet Protocol(IP): định dạng các packets được gửi giữa routers và end systems.
Network: devices, router, link -> quản lý bởi 1 tổ chức.
Internet: network of networks.
1.1.2. A Services Description
• Mô tả Internet theo a “service” view => dịch vụ k cần biết có những gì như:
mail, web, app, social network, peer-to-peer(PCP),…
• Internet appllication run on end system, not run packet switches in network
core because they aren’t concerned with the app that is the source or sink of data.
• Infrastructure: 1 hạ tầng cung cấp các dịch vụ cho các ứng dụng mạng, không
có Application Programming Interface(API) không hoạt động.
1.1.3. What is a Protocols? A human analogy
Network protocols tương tự a huấn protocol lOMoAR cPSD| 58833082 1.2.The Network Edge
• Host or end systems: clients, servers. Muốn kết nối Internet cần kết nối thông qua Edge Router.
• Servers often in data centers. 1.2.1. Access Networks
Physically connects end system to first router(edge route) => kết nối end systems
với edge router. Gồm 3 loại:
• Home Networks: DSL, cable, router, firewall, NAT, wired.
• Wireless Access Networks: gồm 3 loại
- Wireless local area networks(WLANs): như wifi phạm vi hoạt động
~100ft ví dụ quán cafe => phạm vi hoạt động hẹp, tốc độ tốt.
- Wire-are cellular access networks: mạng di động => phạm vi hoạt
động rộng 10km, tốc độ chậm hơn.
- Enterprise networks: companies, universities,… vừa không dây,
vừa vó dây; connecting a mix of switches and router.
• Data Center Networks: cung cấp data center kết nối da ngoài Internet thì
ng dung mới truy suất được nó.
Host: sends packets of data => gửi các gói tin ra ngoài. Quá trình tạo packets:
• Tạo application message(ví dụ: Zalo tạo đoạn chat, up 1 file lên mạng) =>
thông tin do người dùng tạo.
• Chia nhỏ message thành từng đơn vị thông tin bé hơn là packets, length L bits(10bit, 100bit, etc)
• Transmits packet into access networks at transmission rate R(tốc độ truyền đẫn R trong 1s). L(bits)
Packet transmission delay =
R(bits/s) 1.2.2. Physical Media Link: Physical Media
Bit: đơn vị thông tin nhỏ nhất, thông tin re chuyển transmitter and receiver pairs.
Thông tin gửi vào Link bản chất là gửi bit.
Physical link: đường truyền vật lí, gọi rõ của Link gồm 2 dạng:
• Guided Media: có dây như: cable, twisted pair(TP cáp đồng), coaxial
cable(cáp đồng trục) dùng trong truyền hình cable, fiber optic cable(cáp
quang) truyền sóng ánh sáng k sóng điện, etc.
• Unguided media: không dây như: wife, 4G, blutooth, terrestrial microwave, etc. 1.3.The Network Core
- Tập hợp những Routers kết nối với nhau.
- Hai kĩ thuật trung chuyển packets: lOMoAR cPSD| 58833082
• Packet Switching: chia nhỏ messages into packets. Network forwards packets
from one router to the next, dể đến đích. • Ciruit Switching
- Network Core có 2 nhiệm vụ:
• Forwarding: trung chuyển gói tin.
• Routing: tìm đương đi ngắn nhất từ nguồn tới đích. Sử dụng routing algorithms.
Router sử dụng routing algorthms tìm đường đi ngắn nhất
1.3.1. Packet Switching
- Store-and-forward: router chỉ forward gói tin khi nhận được đầy đủ gói
tin,không forward giữa chừng. L
Packet Transmission delay = R 1 gói tin có L bits.
1 đường truyền có tốc độ R bits/s.
Truyền 1 gói tin vào 1 đường link
- Queueing(hàng đơi): router lưu trữ gói tin đg đợi trong hàng đợi chưa đi
rađươc(router nào cũng có cơ chế này).
- Packet queuing and loss(mât mát gói tin): xem video bị mờ là bị mất gói tin: xảy
ra vì xếp hàng, bản chất xếp hàng nằm trong RAM của server, khi số lượng gói tin
lớn hơn bộ nhớ của router thì router sẽ vứt gói tin đó đi => mất gói tin.
=> Phù hợp với loại hình mạng Internet vì Internet dùng ngắt quảng, rời rạc. Thời
gian không dùng người khác nhảy vào dùng đỡ tốn tài nguyên.
1.3.2. Ciruit Switching
- Trung chuyển thông tin từ nguồn tới đích.
- Có 1 bước “reserved” (dành riêng), network core dành riêng 1 con đường
đểtrung chuyển thông tin giữa 2 thằng(khác biệt cốt lõi của ciruit và packet). Hệ
thống cho con đường này rồi thì k ai được sử dụng nữa cho đến khi hết dữ liệu
thì hệ thống mới kết thúc và thằng khác mới sử dụng được.
=> tốc độ cực kì nhanh.
- Phân biệt ví dụ: đi học từ trường về nhà đi qua các ngã tư xem như là 1 router,di
chuyển theo packet switching cứ đi theo đường ngắn nhất gặp tắc đường thì đi
đường khác. Circuit switching, nguyên thủ quốc ra từ sân bay về dành riêng 1 con đường.
=> Ciruit switching được dùng nhiều trong mạng điện thoại(gọi sms không phải
zalo, facebook) vì mạng điện thoại đặc thù trao đổi thông tin liên tục và chất
lượng tuyệt đối, vì ciruit tạo 1 kênh liên lạc riêng. lOMoAR cPSD| 58833082
1.3.3. A Network of Networks
- Host kết Internet thông qua Internet Service Provides (ISPs) (nhà cung cấp
dịchvụ như Viettel, Vinaphone,…) => kết nối ra bên ngoài.
- Các ISPs kết nối lại với nhau. Cách 1 nối lại với nhau đôi 1 => không khả thi.Cách
2 sử dụng 1 thg trung gian gọi là “global ISPs” => chi phí ít hơn, khả thi. Nhiều
global ISPs dử dung IPX(Internet exchange point). Regional ISPs bé hơn.
- Content Provider Network: google, microsoft, akmai,… tạo mạng riêng để kếtnối với ISPs.
1.4.Performance: loss, dealay, throughput
- Loss là do queueing, các gói tin gửi đi được xếp hàng đợi đến lượt gửi ra, đợi ởRAM
thì RAM đầy các gói tin tiếp theo k đi vào được nữa thì router vứt gói tin đó đi. - Delay có 4 yếu tố:
• Proc (nodal processing): khoảng thời gian cần thiết router xử lí thông tin.
Khi gói tin chạy vào router thì không gửi đi luôn mà cần 1 khoảng thời
gian làm số việc kiểm tra xem lỗi bit không, output link nào (forwarding).
Queue (queueing delay): thời gian gói tin ngồi đợi.
• Trans (transmission delay); khoảng thời gian cần thiết đẩy toàn bộ gói tin
ra ngoài đường truyền khác với prop đẩy gói tin đi 1 quảng đường.
• Prop (propagation delay): khoảng thời gian gói tin đi qua 1 quãng đường
nào đó. Thời gian bằng quãng đường chia vận tốc: d¿= d(m) s(m/s)
- Thoughput: tốc độ dữ liệu(bits/s)
• Instantaneous: tốc độ tức thời
Average: tốc độ trung bình
• Rtrước < Rsau => Rtrước
• Rtrước > Rsau => Rsau
Tốc độ theo đường link có tốc độ bé.
1.5.Sercurity 1.6.Protocol layers, service models
- Layer trên sử dụng dịch vụ layer ở dưới.
- Application -> transport -> network -> link -> physical -> physical -> link -> network-> transport -> application.
- Appication gọi “message”, xuống transport gắn thêm đon vị thông tin
“segment”,xuổng network layer gắn thêm “datagram”, xuống link layer thêm “frame”,
rồi chuyển xuống physical layer. Thông tin ở Link Layer vẫn ở dạng bit. Biến đổi bit lOMoAR cPSD| 58833082
thành tín hiệu phù hợp với đường truyền ở tầng physical layer. Khi đi ngược lên trên
thì thông tin được gắn thêm được xử lí và loại bỏ ở từng tầng.
- Gắn thêm đơn vị gọi là Encapsulation.
- Switch chỉ hoạt động ở tầng Link và Physical.
- Router chỉ hoạt động ở tầng Network, Link, Physical.
Chapter 2: Application Layer
2.1. Principles of network applications - Creating a netwok app:
• Write programs that: run on end systems (different), có khả năng trao đổi thông tin qua mang
• Không cần viết cho network core.
2.1.1. Mô hình Client- Server - Server: • Luôn luôn bật
• Địa chỉ IP cố định Thường ở data centers - Client: • Giao tiếp với server
• Không cần kết nối liên tục
• Có địa chỉ IP linh động
• Giao tiếp gián tiếp với các clients khác
• Ví dụ: HTTP, IMAP, FTP,…
2.1.2. Mô hình Peer – peers
- Không có máy chủ luôn bật
- Các end systems đều có thể liên kết trực tiếp được với nhau
- Peers yêu cầu dịch vụ đến peers khác, cung cấp dịch vụ ngược trở lại cho peerskhác
- Peers có thể thay đổi địa chỉ IP
2.1.3. Processes communicating (Tiến trình giao tiếp)
- Process: chương trình chạy trong host
• 2 tiến trình giao tiếp chạy trong cùng 1 host sử dụng inter-process
communication (do OS – hệ điều hành)
• Tiến trình ở các host khác nhau giao tiếp bằng các trao đổi tin nhắn lOMoAR cPSD| 58833082
- Client process: tiến trình bắt đầu giao tiếp (gửi Message)
- Server process: tiến trình đợi liên lạc ( nhận Message)
Ứng dụng với kiến trúc P2P có cả client – server 2.1.4. Sockets
- Process gửi/nhận tin nhắn từ sockets của chính nó
- Sockets giống cánh cửa: Process gửi -> đưa Message ra khỏi cưa; Process nhận->
dựa vào đường đi ở phía trên cánh cửa để vận chuyển Message (vận hành của các layer dưới)
- 2 socket cùng tham gia, mỗi cái 1 bên
2.1.5. Addressing processes
- Để nhận tin nhắn, process phải có identifier
- Các host đề có 1 địa chỉ IP dài 32 bit là duy nhất
- Identifier gồm cả địa chỉ IP đánh địa chỉ host và Port Number đánh địa chỉ
process nằm trên cùng 1 host
- Ví dụ Port Number các ứng dụng cố định: • HTTP server: 80 • Mail server: 25
2.1.6. Application layer protocol defines
- Các kiểu message được trao đổi: request, response - Message syntax
- Message semantics (Ý nghĩa)
- Quy tắc về thời điểm, cách thức các tiến trình gửi và phản hồi
- Open protocols: giao thức mở ai cũng có thể dùng được
• Được định nghĩa ở RCFs • Ví dụ HTTP, SMTP
- Proprietary protocols: giao thức đóng • Ví dụ: Skype, Zoom,…
2.1.7. Transport service
- Dataloss (Toàn vẹn dữ liệu):
• Một số ứng dụng(audio0 có thể chấp nhận mất dữ liệu
• Các ứng dụng đòi hỏi dữ liệu bảo toàn tuyệt đối - Time sensitive (Kịp thời):
• Một số ứng dụng đòi hỏi độ trễ ở mức chấp nhận được - Throughtput (Băng thông):
• Vài ứng dụng cần băng thông tối thiểu để đạt hiệu quả
• Các ứng dụng có thế thích nghi với băng thông hiện có
- Sercurity: encryption, data intergity,…
2.1.8. Internet transport protocols services
- TCP service: (Transmission Control Protocol)
• Reliable transport: trao đổi thông tin đáng tin cậy giữa process gửi và nhận được đúng cái đó lOMoAR cPSD| 58833082
• Flow control (điều khiển luồng): giúp người gửi không làm quá tải người nhận
• Congestion control: mạng người gửi quá tải, tắc thì yêu cầu không gửi nữa
• Connection-oriented: cần quá trình thiết lập kết nối "handshake" giữa tiến trình client và sever
• Does not provide (không đảm bảo): timing, bảng throughput guarantee, sercurity
- UDP service: (User Datagram Protocol)
• Trao đổi thông tin không đáng tin cậy (ko bảo đảm) giữa các tiến trình gửi
và nhận, có khả năng mát mát thông tin
• Does not provide: reliability, flow control, congestion control, timing,
throughput guarantee, security, connection setup
Chỉ nhận truyền dữ liệu đi và truyền đến process nhận nhưng trên
đường đi không cung cấp gì
- UDP vẫn tồn tại và được sử dụng do nó đơn giản và nhanh hơn so với TCP, tuy
nhiên không đảm bảo bằng TCP
Tùy từng trường hợp thì sử dụng UDP hoặc TCP sao cho hợp lí 2.2. Web and HTTP - HTTP overview
• HTTP: hypertext transfer protocol
• Web’s application-layer protocol
• Hoạt động theo mô hình client – server:
o Client: brower requests, receives (using HTTP protocol) and hiển thị web objects
o Server: Web server gửi (using HTTP protocol) object để response to request
• HTTP sử dụng TCP do HTTP là ứng dụng web do cân hoạt động đáng tin cậy
• HTTP là protocol không có trạng thái: server k duy trì thông tin về request trước đó - HTTP request message:
• HTTP có 2 loại message được trao đổi giữa web brower và web server: request, respone • HTTP request message:
o Viết bằng mã ASCII (human – readable format)
o Dòng đầu tiên gọi là “request line” chỉ được sử dụng 1 trong ba lệnh: lOMoAR cPSD| 58833082
GET, POST, HEAD o Các dòng tiếp gọi là “header lines” nói lên vào host này lấy file này,
User – agent thông tin về máy
o POST method: muốn gửi thông tin lên trên server như submit form lên.
o PUT method: muốn upload 1 file lên trên server
o GET method: gồm dữ liệu của user trong trường URL của HTTP GET
(sau dấu ?) VD: www.somesite.com/animalsearch?monkeys&banana - HTTP respone message - Cookies:
• Duy trì trạng thái làm việc web client và web server ví dụ thêm giỏ hàng vào
lazada và hôm sau vào vẫn còn thì do Cookie 4 thành phần:
o Dòng tiêu đề cookie của thông báo phản hồi HTTP o Dòng tiêu đề
cookie trong thông báo yêu cầu HTTP tiếp theo o Tệp cookie được lưu
trên máy chủ của người dùng, được quản lý bởi trình duyệt của người dùng
o Cơ sở dữ liệu back-end tại trang Web - Web Caches:
• Mục đích: Thỏa mãn yêu cầu của clients mà không liên quan đến sever chính
Bằng cách đặt 1 Web cache giữa client và server Brower send all HTPP requests to cahe:
o Nếu web cache chưa lưu nội dung trang web đó thì request -> web
cache -> server gốc -> reponse về web cache -> về client
o Nếu đã lưu như người dùng thứ 2 vào thì request gửi về web cache và
được web cache reponse về client
Tăng tốc độ truy cập vào web nhanh hơn
• Web cache vừa đóng vai trò client vừa đóng vai trò server o Client với server
gốc o Server với người dùng
• Sever nói với caches cho phép chứa các thực thể trong các response header o
Cache-Control: max-age=< seconds >, tồn tại bao nhiêu thời gian thì xóa trong
cache –> cập nhật lại cái mói từ sever chính. o Cache-Control: no-cache
• Conditional GET o Không gửi object nếu cahce có bản mới nhất
o Client: têm một dòng thời điểm lấy cache trong HTTP request.
ifmodified-since: < date >
o Server: nếu cache đã là bản mới nhất, server sẽ phản hồi lại không chứa object 2.3. FTP protocol -
Có người dùng ctrinh PC người ta muốn thao tác và duyệt các file trên máy
chủ- Mô hình client/server lOMoAR cPSD| 58833082 -
Giao thức FTP mở 2 connection (HTTP mở 1 connection) 1 connection ở cổng
21 đểđiều khiển coi client này được phép duyệt trên server không chuyên dùng các
lệnh để duyệt, 1 connection ở cổng 20 2.4. Electronic Mail - Gồm 3 thành phần:
• User agents: là mail reader, ví dụ: gmai, outlook Mail server:
o Mailbox: chứa các mail được gửi
đến user o Message queue: gửi các mail ra ngoài
• SMTP protocol (simple mail transfer protocol):
o Client: sending mail server o Server: receiving mail server - SMTP RFC: • Sử dụng TCP, port 25
• 3 giai đoạn trao đổi o SMTP handshaking o SMTP transfer of messages o SMTP closure
2.5. DNS (Domain Name System)
- Là cơ sở dữ liệu phân tán được triển khai ở rất nhiều server- Hoạt động ở
application-layer protocol: phân giải tên miền, địa chỉ ip - DNS services:
• phân giải từ tên miền –> địa chỉ IP • host aliasing • mail server aliasing • load dítribution
- Tại sao không là là CSDL tập trung:
• Nếu server chết -> DNS chết • Quá tải dung lượng
• Khoảng cách giữa các CSDK và máy sẽ bị xa • Khó bảo trì 2.6. P2P applications
- Chia sẻ file: client-server và P2P
• Hỏi: Thời gian để chia sẻ file (size F) từ 1 server đến N peers Client-server:
o Server: Sẽ phải gửi N lần
o Cient: download file từ server • P2P:
o Server: chỉ cần upload đúng 1 lần o Client: phải download file
- P2P chia sẻ file: BitTorrent protocol: lOMoAR cPSD| 58833082
• Các file chia thành các mảnh nhỏ “chunks” có kích cỡ 256Kb, peers gửi các
chunks cho nhau cho đến khi nhận đầy đủ các chunks tạo thành 1 file thì thôi
• Torrent là 1 nhóm các peers đang chia sẻ các file nào đấy, tracker để thống kê
có nhiêu torrent và mỗi torrent có bao nhiêu peers
Chapter 3: Transport Layer
3.1.Transport layer services
3.1.1. Transport services and protocols
- Cung cấp 1 kết nối về mặt logic (ảo) giữa các process chạy bởi các host khácnhau,
về mặt vật lí vẫn đi qua từng thằng
- Các hoạt động của transport protocol trong end systems:
• Phía gửi: chia các application message thành các segment, rồi chuyển xuống network layer
• Phía nhận: gộp các segment thành các message ban đầu, rồi chuyển lên application layer
- Hai giao thức hoạt động ở tầng transport với mạng Internet: TCP, UDP
3.1.2. Transport vs. network services and protocols
- Network layer: logical communication between hosts
- Transport layer: logical communication between processes
3.1.3. Two principal Internet transport protocols -TCP:
• reliable, in-order delivery • congestion control
• flow control connection setup - UDP:
• unreliable, unordered delivery
no-frills extension of "best effort"
IP - Các dịch vụ cả hai không có:
• delay guarantees: Đảm bảo độ trễ
• bandwidth guarantess: Đảm bảo băng thông
3.2.Multiplexing and demultiplexing
3.2.1. Multiplexing/demultiplexing
- Multiplexing ở phía gửi: kiểm soát data từ nhiều socket, thêm transport header
- Demultiplexing ở phía nhận: sử dụng thông tin header để vẫn chuyển các
segment đã nhận đến đúng socket
3.2.2. How demultiplexing work - Host nhận IP datagram:
• Mỗi datagram có địa chỉ IP nguồn, đích
• Mỗi datagram chở 1 transport layer segment
• Mỗi segment có số port number
- Host sử dụng địa chỉ IP và port number để kết nối segment đến socket lOMoAR cPSD| 58833082
3.2.3. Connectionless demultiplexing
- Socket được định danh bởi IP đích và port đích
- Cặp IP và port number của máy đích được định danh bằng cặp này
3.2.4. Connection-oriented demultiplexing
- TCP socket gồm 4 thành phần: • Địa chỉ IP nguồn • Cổng nguồn • Địa chỉ IP đích • Cổng đích 3.2.5. Summary
- UDP: demultiplexing chỉ sử dụng địa chỉ đích
- TCP: demultiplexing sử dụng cả địa chỉ nguồn, đích
3.3.Connectioless transport UDP 3.3.1. UDP
- Giao thức tầng Transport
- Best effort: cố gắng hết sức, tạo 1 kết nối mặt logic, cố gắng đem dữ liệu đếnđích
nhưng message bị sao không chịu trách nhiệm - Connectionless:
• Không có bước kết nối, có cứ gửi
• Mỗi UDP segment được quản lý độc lập với nhau
- Trao đổi thông tin đáng tin cậy qua UDP: triển khai độ tin cậy, kiểm soát độnghẽn ở application-layer 3.3.2. UDP checksum
- Phát hiện lỗi- Phía gửi:
• Chia UDP segment thành các nhóm gồm 16 bit
• Checksum: tính tổng các nhóm rồi đảo ngược bit
• Thêm vào header checksum
- Internet checksum: weak protection
3.4.Principles of reliable data transfer (Nguyên tắc trao đổi thông tin đáng tin cậy)
3.4.1. Principles of reliable data transfer
- Sử dụng service từ Network Layer không đáng tin cậy do router
3.4.2. Reliable data transfer protocol (rdt): interfaces
- rdt_send(): Chuyển dữ liệu xuống từ application –> transport
- udt_send() (unreliable data transfer): Chuyển từ transport –> network
- rdt_rcv(): Thông báo có packet chuyển từ network –> transport
- delivery_data(): Chuyển dữ liệu từ transport –> application
3.4.3. Reliable data transfer: getÝng started
- Mục tiêu: xây dựng 1 giao thức trao đổi thông tin đáng tin cậy
- Mô hình finate state machine (FSM) để mô tả phía gửi, nhận lOMoAR cPSD| 58833082
• Mỗi một thực thể tồn tại ở một trạng thái ("state"). Khi có một sự kiện
("event") xảy ra ở thực thể hiện tại, nó sẽ chuyển ("transition") sang trạng thái khác
• Việc chuyển trạng thái gây ra hành vi ("action") khác • –> event/action
3.4.4. rdt1.0: reliable transfer over a reliable channel
- Giả sử môi trường gửi dữ liệu hoàn toàn tin cậy: không mất mát, không lỗi bit -
Sử dụng mô hình FSM mô tả phía gửi và phía nhận:
• Phía gửi: đợi dữ liệu từ trên –> rdt_send(data)/packet = make_pkt(data)
(thông báo/đóng gói dữ liệu) -> udt_send(packet) –> đợi dữ liệu
• Phía nhận: đợi dữ liệu từ dưới –> rdt_rcv(data)/extract(packet, data) ->
delivery_data(data) –> đợi dữ liệu
3.4.5. rdt2.0: channel with bit errors - Tích hợp 2 tính năng:
• Cơ chế checksum để phát hiện bit sai
• Khôi phục từ lỗi o Acknowledgements (ACKs): Cơ chế phản hồi từ phía
nhận thông báo cho phía gửi là OK
o Negative acknowledgements (NAKs): Cơ chế phản hồi từ phía
nhận thông báo cho phía gửi bị lỗi
o Phía gửi sẽ gửi lại gói tin cho các phản hồi NAKs
- Giao thức rdt2.0 thuộc kiểu stop and wait: phía gửi gửi 1 gói tin, sau đó chờphản hồi của phía nhận - Mô hình FSM:
• Phía gửi: Có hai trạng thái:
o Ngồi đợi dữ liệu (có lệnh từ application layer) o Ngồi đợi ACK,
NAK (phản hồi từ phía nhận)
o Khi có sự kiện rdt_send(data)/ packet = make_pkt(data, checksum)
từ tầng app –> đóng gói gói tin và checksum, gửi gói tin
o Sau đó chuyển trạng thái chờ đợi phản hồi –> Nhận được gói tin
phản hổi, kiểm tra phản hổi, có 2 sự kiện:
Phản hổi nhận được là ACK –> Chuyển về đợi dữ liệu tiếp theo
Phản hồi nhận được là NAK –> Gửi lại gói tin –> Vẫn chuyển
về trạng thái chờ đợi phản hồi
• Phía nhận: Một trạng thái ngồi đợi dữ liệu (từ tầng network đẩy lên) o
Khi có sự kiện nhận được gói tin bị lỗi –> Gửi NAK, chuyển về đợi gói tin
o Khi có sự kiện nhận được gói tin ko bị lỗi –> Mở gói tin, chuyển dữ liệu lên trên, gửi ACK
- Lỗi cực kỳ nghiêm trọng: lOMoAR cPSD| 58833082
• Khi NAK, ACK bị lỗi o Phía gửi ko biết điều gì xảy ra o Không thể gửi lại
–> sẽ bị lặp lại gói tin • Giải pháp:
o Gửi lại gói tin hiện tại nếu ACK/NAK bị lỗi
o Phía gửi thêm một số thứ tự (sequence number) với mỗi gói tin o
Phía nhận hủy bỏ những gói tin bị trùng lặp 3.4.6. rdt2.1:
sender/receiver, handling garbled ACK/NAKs - Phía gửi:
• Số thứ tự seq # được add vào gói tin
• Chỉ cần sử dụng stt seq #s (0, 1) là đủ
• Cơ chế kiểm tra ACK và NAK có bị lỗi không
• Số trạng thái gấp đôi 2.0
- Phía nhận: Phải kiểm tra xem gói tin có bị trùng lặp hay không
3.4.7. rdt2.2: a NAK-free protocol
- Giống rdt2.1, nhưng chỉ sử dụng ACK
- Thay vì gửi NAK, phía nhận sẽ gửi ACK của gói tin cuối cùng đến đích thànhcông
- ACK trùng lặp tại phía gửi–> tương tự như NAK: truyền lại pkt hiện tại
- TCP sử dụng phương pháp này để không có NAK
3.4.8. rdt3.0: channels with errors and loss (kênh truyền bị mất, lỗi)
- Giả định kênh có thể bị lỗi, mất mát gói tin (dữ liệu, ACKs)
- Cách tiếp cận: Đợi một khoảng thời gian nhất định cho phản hồi ACK
• Gửi lại nếu không có ACK
• Nếu gói tin (hoặc ACK) bị chậm (không mất): Có số thứ tự seq để check trùng lặp
• Có thêm cơ chế "time out": Sau một thời gian thì nếu ko có phản hồi –> sẽ gửi lạ
- Hiệu suất của rdt3.0 (stop-and-wait): cực kì kém hiệu quả
- rdt3.0: pipelined protocols operation: phía gửi được phép gửi nhiều gói
tin –> sau đó ngồi đợi phản hồi
3.4.8.1. rdt3.0: Go-Back-N (pipelined protocols operation) - Phía gửi:
• Phía gửi được gửi liên tiếp tối đa N gói tin, sau đó dừng lại để đợi ACK
• "window": Không gian số thứ tự, được sử dụng k bit để đánh số seq #
• cumulative ACK (n): khi gửi ACK (n) tức là gửi thành công các gói tin có số thứ tự <= n
• timeout(n): truyền lại gói n và tất cả gói thứ tự cao hơn trong "window"
- Phía nhận: bỏ tất cả các gói tin không đến đích theo thứ tự lOMoAR cPSD| 58833082
3.4.8.2. rdt3.0: Selective repeat (pipelined protocols operation)
- Phía nhận: phản hổi ACK tất cả các gói tin đến đích thành công
Buffer những gói tin đến đích không theo đúng thứ tự
- Phía gửi: time-out/gửi lại những gói tin chưa được phản hồi ACK
3.5.Connection oriented transport TCP 3.5.1. Overview
- Từ điểm này –> điểm khác
- Tin cậy, in-order byte (byte đến đích theo thứ tự
- Gửi dữ liệu theo hai chiều: MSS: maximun segment size
- Cumulative ACK: Khi gửi một ACK (n) tức là đã nhận được các byte < n
- Pipelining: TCP congestion, flow control set window size
- Connection-oriented: trải qua bước bắt tay (handshaking)
- Flow controled: phía gửi không gửi quá tải phía nhận
3.5.2. TCP segment structure - Segment = header + data - Header: • Source, dest port #
• Sequence number: số thứ tự • ACK number • Checksum
• Length: Độ dài của TCP header
• Receive window: flow control
• R (RST), S (SYN), F (FIN): quản lý kết nối
A (ACK bit) 3.5.3. TCP sequence numbers, ACKs - Sequence numbers: •
Là số thứ tự của byte đầu tiên nằm trong segment đó
VD: seg 1 - (0 - 19) byte –> seq 0, seg 2 (20 - 39) –> seq 20 - ACK
number (phản hổi từ phía nhận): •
Thông báo cho phía gửi byte tiếp theo được nhận là bao nhiêu •
Chính là số thứ tự của byte tiếp theo mà phía gửi muốn nhận
3.5.4. TCP fast retransmit
- Nếu phía gửi nhận được ba lần ACK giống nhau, gửi lại segment chưa được ACK với sequence nhỏ nhất 3.5.5. Flow control
- Là thông tin trong receive window
- Receive window(rwnd): số byte tối đa mà phía nhận nhận được
- Flow control: Kiểm soát để tránh làm tràn buffer phía nhận
3.5.6. TCP connection management
- Trước khi trao đổi dữ liệu, phía gửi và nhận phải "handshake".
- TCP bắt tay trong 3 bước: lOMoAR cPSD| 58833082
• Client gửi o SYN bit = 1 –> gói tin yêu cầu khởi tạo kết nối
o Seq = x –> gói tin đầu tiên mà Client gửi có số hiệu là x
• Server phản hồi o SYN bit = 1 –> gói tin yêu cầu khởi
tạo kết nối o Seq = y –> gói tin đầu tiên mà Server
gửi có số hiệu là y o ACKBit = 1 –> Chấp nhận
o ACKNum = x + 1 –> Thông báo đã nhận được từ client
• Client gửi tiếp o ACKbit = 1 –> Chấp nhận
o ACKNum = y + 1 –> Thông báo đã nhận được từ server
3.5.7. TCP round trip time (RTT), timeout
- Đặt timeout lớn hơn RTT -
Cần xác định được RTT:
• Sample RTT: Thời gian từ việc gửi dữ liệu đến khi nhận được ACK
• EstimatedRTT (Giá trị trung bình RTT) = (1 - alpha) * EstimatedRTT + alpha * SampleRTT • alpha = 0.125
3.6.Principles of congestion control (Kiểm soát sự tắc nghẽn) - Congestion (tắc nghẽn):
Không chuẩn lắm: quá nhiều nguồn gửi quá nhiều dữ liệu và gửi quá nhanh
khiến network không xử lý kịp. Khác với flow control Biểu hiện: o Mất gói tin o Đỗ trễ dài
- Causes/costs of congestion: scenario 2 3.7.TCP congestion
- Mục tiêu: phía gửi TCP phải truyền nhanh nhất có thể nhưng không làm tắc nghẽnmạng
- Phi tập trung: mỗi phía gửi TCP đặt tốc độ riêng dựa trên phản hồi ngầm:
ACK: đã nhận được phân đoạn, mạng không bị tắc nghẽn -> tăng tốc độ, tăng
đến lúc có nghẽn thì giảm tốc độ
- Phía gửi giới hạn tốc độ bằng cách giưới hạn số byte unACK - rate = cwnd/RTT (bytes/sec)
Chapter 4: Network layer 4.1.Introduction 4.1.1. Networ layer
- Vận chuyển các segment từ phía gửi đến phía nhận
- Tại phía gửi, đóng gói segments –> datagrams/packets(gói tin)
- Ở phía nhận, vận chuyển các segment đến tần transport
- Giao thức tầng network có trong tất cả cá host, router
- Router kiểm tra header trong tất cả các gói tin IP đi qua nó lOMoAR cPSD| 58833082 4.1.2. Chức năng
- Forwarding: chuyển tiếp gói tin từ cổng này sang cổng kia của router
- Routing: tính toán các con đường cho gói tin từ điểm đầu đến điểm cuối
- Các bước hoạt động: thuật toán routing giúp tạo bảng forwarding với 2 cột
(header, outputlink), các router chuyển packet theo bảng này
4.1.3. Connecting Setup
- Host và router hình thành kết nối ảo để duy trì hi truyền packet
- Network là kết nối giữa 2 host (có sự liên quan đến router) trong khi transportlà kết nối giữa 2 process
4.1.4. Networkk service model
- Mô hình dịch vụ cho kênh gửi datagrams:
• Gửi từng gói một: đảm bảo truyền ổn, giới hạn delay
• Gửi một luồng: đảm bảo về thứ tự, băng thông, ràng buộc về không gian giữa các gói tin
- Mô hình Internet là best effort service model, không quan tâm về loss,
order,timing, congestion, lợi ích là light-weight 4.2.Virtual circuit and
datagram networks 4.2.1. Connection, connectionless service - Datagram network: • phi kết nối
• không duy trì trạng thái, đưa thẳng gói tin ra dựa trên bảng định tuyến
• không biết được 2 bên còn duy trì kết nối không
• forward dựa trên địa chỉ đích o được cung cấp 32 bit địa chỉ -> 4 tỉ IP address
o nếu lưu hết vào 1 bảng mà bảng lưu trong ram -> gây quá tải
o giải pháp là sử dụng list range of address - Virtual-ciruit: • Kết nối
• có hiệu năng cao do đã định trước đường truyền, một mình mình đi
• có nhiều thiết lập cần được thực hiện trước khi truyền dữ liệu
• mỗi gói tin mang một identifier VC, dùng để định danh đích tiếp theo chứ
không mang destination host address
• các router trên đường truyền phải duy trì được state (stateful), nhớ xem
gói tin đến từ đâu và đi về đâu,, ai truyền đến
• lợi ích là biết được 2 bên còn duy trì kết nối không
• nắm bắt hết resource ngay tù đầu (bandwidth, buffer) => quản lí dễ dàng
- No choice: không có thể chuyển đổi kết nối như tầng transport(chuyển kết nối -> không kết nối)
- Triển khai chủ yếu trong network core- VC implementation:
• path: đường đi từ nguồn đến đích vc numbers:
o gán cho các link, định danh đường đi tiếp theo (không gán cho router) lOMoAR cPSD| 58833082
o packet thuộc về VC thì mang VC number chứ không jmang dest address
o VC number thay đổi trên mỗi link, sau khi đi qua các router
• bảng forwarding: nội dung khác với bảng forwarding ở
datagram - Datagram or VC(ATM) network:
• Internet (datagram): o mềm dẻo, không yêu cầu cao về timing o nhiều loại link
o phức tạp ở edge, đơn giản ở network • ATM (VC):
o phát triển từ ý tưởng điện thoại dây: yêu cầu về timing, đảm bảo
cao o thiết bị edge đơn giản, tầng mạng phức tạp
4.3.What’s inside a router - Kiến trúc bậc cao: lOMoAR cPSD| 58833082
4.3.1. Router input port - Decentralized switching:
o Sử dụng các giá trị trường header, tra cứu cổng đầu ra bằng cách sử
dụng bảng chuyển tiếp (một phần của bảng định tuyến) trong bộ nhớ
cổng đầu vào (“match plus action”)
o Mục tiêu: hoàn thành xử lý cổng đầu vào ở 'tốc độ đường truyền' o Xếp
hàng cổng đầu vào: nếu các datagram đến nhanh hơn tốc độ chuyển
tiếp vào kết cấu chuyển đổi
o Chuyển tiếp dựa trên đích: chỉ chuyển tiếp dựa trên địa chỉ IP đích
(truyền thống) o Chuyển tiếp tổng quát: chuyển tiếp dựa trên bất kỳ tập
hợp giá trị trường header nào
4.3.1.1. Switching fabrics
- Chuyển gói tin từ input đến output tương ứng
- switching rate: Tốc độ mà các gói tin có thể được chuyển từ đầu vào sangđầu ra
• thường được đo là bội số của tốc độ dòng vào/ra N inputs:
tốc độ chuyển mạch N lần tốc độ dòng mong muốn - 3 loại switching fabric chính: • Memory lOMoAR cPSD| 58833082 • Bus • Interconnection network 4.3.1.1.1. Switching via memory
- Máy tính truyền thống với chuyển đổi dưới sự kiểm soát trực tiếpcủa CPU
- Gói được sao chép vào bộ nhớ của hệ thống
- Tốc độ bị giới hạn bởi băng thông bộ nhớ (2 giao cắt bus trên mỗidatagram) 4.3.1.1.2. Switching via bus - đẩy hết lên 1 kênh
- tốc độ nhanh hơn nhưng có vấn đề về xung đột packet, đồng thờitốc
độ bị giới hạn bởi băng thông 4.3.1.1.3.
Switching via interconnection network
- Tạm giải quyết được các vấn đề trên
4.3.1.2. Input port queuing -
Nếu switching fabric chậm hơn so với cổng đầu vào kết hợp -> xếp
hàngcó thể xảy ra ở input queues
Chậm trễ và mất hàng đợi do tràn bộ đệm đầu vào! -
Head-of-the-Line (HOL) blocking: datagram xếp hàng đợi ở phía
trướchàng đợi ngăn những người khác trong hàng đợi di chuyển về phía lOMoAR cPSD| 58833082
trước - Output port contention (tranh chấp): chỉ có thể truyền một gói dữ
liệu màu đỏ. gói màu đỏ thấp hơn bị chặn
4.3.2. Router input port
- Buffering là cần thiết khi datagram ra khỏi fabric nhanh hơn transmission rate (tốc độ truyền) • Tính buffering: • Những rủi ro:
o Loss: có thể mất mán gói tín do congestion ở buffering,
nguyên nhân là do kích thước buffer không đủ
o Head of the Line (HOL) blocking: datagram bị delay dẫn đến
block các datagram đằng sau cũng đang queue, tệ hơn là
datagram đó có thể của ouput port khác
- Scheduling discipline thực hiện đánh số ưu tiên cho một số datagram truyềntrước,
nếu datagram đó là loại cần được ưu tiên
4.4.IP: Internet Protocol
4.4.1. Network Layer: Internet