So sánh bit và segment môn mạng máy tính năm 2024

3 UDP: Giao thức không kết nối 3 Nguyên lý truyền tin tin cậy 3 TCP: Giao thức hướng kết nối 3 TCP điều khiển tắc nghẽn

Chương 4: Tầng Network

4 Giới thiệu 4 Mạng mạch ảo và mạng chuyển gói 4 IP: Internet Protocol 4 Các thuật toán Routing 4 Routing trong Internet

Chương 5: Tầng link

5 Một vài thuật ngữ 5 Các dịch vụ của tầng liên kết 5 Phát hiện và sửa lỗi 5 Giao thức đa truy cập 5 Địa chỉ MAC, Ethernet, Switch

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

Chương 1: Giới thiệu

1 Internet là gì?

Hàng triệu các thiết bị máy tính được kết nối:

  • Hosts = hệ thống đầu cuối
  • Chạy ứng dụng mạng

Các liên kết truyền thông:

  • Cáp quang, cáp đồng, radio, vệ tinh
  • Tốc độ truyền: băng thông [bandwidth]

Chuyển mạch gói: chuyển tiếp gói tin [khối dữ liệu]

  • Thiết bị định tuyến [routers ] và thiêt bị chuyển mạch [switches]

Internet: “mạng of các mạng”

  • Các nhà cung cấp dịch vụ mạng [ISPs] được kết nối với nhau.

Các giao thức điều khiển gửi, nhận thông tin

  • Ví dụ: TCP, IP, HTTP, Skype, 802.

Các chuẩn Internet

  • RFC: Request for comments
  • IETF: Internet Engineering Task Force

Cơ sở hạ tầng cung cấp các dịch vụ cho các ứng dụng:

  • Web, VoIP, email, games, thương mại điện tử, mạng xã hội, ...

Cung cấp giao diện lập trình cho các ứng dụng

  • Cái móc [hooks] cho phép gửi và nhận các chương trình ứng dụng để “kết nối” với Internet
  • Cung cấp các lựa chọn dịch vụ, tương tự như dịch vụ bưu chính.

Giao thức định nghĩa định dạng, thứ tự các thông điệp được gởi và nhận giữa các thực thể mạng, và các hành động được thực hiện trên việc truyền và nhận thông điệp

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

  • Các packet có thể bị bỏ [mất] nếu bộ nhớ hàng đợi [bộ nhớ đệm] đầy

Chuyển mạch kênh: 2 điểm đầu cuối muốn trao đổi thông tin sẽ thiết lập 1 kênh truyền riêng [circuit] với băng thông được cấp phát dành riêng cho cả 2 cho tới khi truyền tin kết thúc

  • Kênh không được chia sẽ nên sẽ rảnh rỗi lúc không truyền tin

Ghép kênh: gửi dữ liệu của nhiều kênh khác nhau trên một đường truyền vật lý

Phân kênh: phân dữ liệu được truyền trên đường truyền vật lý vào các kênh tương ứng và chuyền cho đúng đích

  • Ghép kênh theo thời gian [TDM]: mỗi kết nối sử dụng tài nguyên trong thời gian được phân.
  • Ghép kênh theo tần số [FDM]: mỗi kết nối sử dụng 1 băng tần tín hiệu riêng

So sánh giữa chuyển mạch gói và chuyển mạch kênh

Chuyển mạch gói Chuyển mạch kênh

❖ Ưu điểm: Băng thông được sử dụng tốt hơn do không bị giới hạn trên 1 kênh riêng Lỗi đường truyền không làm chậm trễ do có nhiều đường truyền khác nhau Nhiều người có thể sử dụng chung một đường truyền ❖ Nhược điểm: Độ trễ truyền lớn Dễ xảy ra mất gói tin nếu dung lượng lớn

❖ Ưu điểm: Tốc độ truyền và băng thông cố định Không có thời gian chờ tại các nút chuyển tiếp Có thể sử dụng lâu dài Chất lượng ổn định, không bị mất gói

❖ Nhược điểm: Nhiều kênh thì băng thông càng nhỏ

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

Chỉ một kênh truyền được sử dụng tại một thời điểm Kênh truyền sẽ duy trì cho đến khi 2 bên ngắt kết nối và có thể lãng phí băng thông nếu không truyền dữ liệu Thời gian thiết lập kênh truyền quá lâu

1 Độ trễ, thông lượng trong mạng

4 nguồn gây ra chậm trễ gói tin

  • dproc: xử lý tại nút o Kiểm tra các bits lỗi o Xác định đường ra o Thông thường < ms
  • dqueue: độ trễ xếp hàng o Thời gian đợi tại đường ra o Phụ thuộc vào mức độ tắc nghẽn của bộ định tuyến
  • dtrans: độ trễ do truyền o L: chiều dài gói tin [bits] o R: băng thông [bps] o dtrans = L/R
  • dprop: trễ do lan truyền o d: độ dài đường truyền vật lý o s: tốc độ lan truyền trong môi trường o dprop= d/s

Trong đó:

  • R: băng thông đường link [bps]
  • L: độ dài gói tin [bits]
  • a: tỷ lệ trung bình gói tin đến

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

Chương 2: Tầng Application

2 Các nguyên lý của các ứng dụng mạng

Các kiến trúc ứng dụng:

  • Kiến trúc Client – Server
  • Kiến trúc P2P [Peer to peer]

Client – Server P2P Server - Luôn hoạt động

  • Địa chỉ IP cố định
  • Trung tâm phục vụ và lưu trữ dữ liệu
  • Không có server

Client - Giao tiếp với server - Có thể kết nối không liên tục - Có thể dùng địa chỉ IP động - Không giao tiếp trực tiếp với các client khác

  • Các hệ thống đầu cuối giao tiếp trực tiếp với nhau
  • Các peer yêu cầu dịch vụ từ các peer khác và cung cấp dịch vụ ngược lại từ các peer khác => Có khả năng tự mở rộng
  • Các peer được kết nối không liên tục và có thể thay đổi địa chỉ IP
  • Quản lí phức tạp

Các tiến trình liên lạc:

  • Tiến trình [Process] là chương trình chạy trong một host
  • Trong cùng một host, hai tiến trình giao tiếp với nhau bằng cách sử dụng truyền thông liên tiến trình [inter-process communication] được định nghĩa bởi hệ điều hành
  • Các tiến trình trong các host khác nhau truyền thông với nhau bởi trao đổi các thông điệp [message]

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

Clients, Servers:

  • Tiến trình Client: tiến trình khởi tạo truyền thông.
  • Tiến trình Server: tiến trình chờ đợi để được liên lạc.

Chú ý: Các ứng dụng với kiến trúc P2P có cả tiến trình client và tiến trình server.

Sockets: Điểm truy cập dịch vụ của tầng Transport

\=> Socket tương tự một cổng ra vào

Các tiến trình sử dụng socket gọi dịch vụ của tầng giao vận để trao đổi thông điệp

Để nhận thông điệp, tiến trình phải có định danh [identifier],bao gồm:

  • Địa chỉ IP
  • Số cổng [port numbers]

Thiết bị host device có địa chỉ IP 32-bit duy nhất

Một số Port tầng Application:

Protocol Port number Protocol Port number FTP 20 HTTP 80 SSH 22 Telnet 23 DNS 53 HTTPS 443 LPD 515 TFTP 69 SMTP 25 NFS 2049

Các dịch vụ giao thức Transport Internet

  • Dịch vụ TCP: o Reliable transport [truyền tải tin cậy] giữa tiến trình gửi và nhận.

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

HTTP [Hypertext Transfer Protocol]: là giao thức web ở tầng Application

Mô hình Client / Server:

  • Client: trình duyệt yêu cầu và nhận [sử dụng giao thức HTTP], hiển thị các đối tượng của web.
  • Server: Web server gửi [sử dụng giao thức HTTP] các đối tượng để đáp ứng yêu cầu của Client
  • RTT [Round Trip Time]: khoảng thời gian [tính bằng ms] để một gói tin nhỏ đi từ Client đến Server và quay ngược trở lại.

Các kết nối HTTP

HTTP không bền vững [Nonpersistent HTTP]

HTTP bền vững [Persistent HTTP]

  • Chỉ tối đa một đối tượng được gửi qua kết nối TCP. Kết nối sau đó sẽ bị đóng.
  • Tải nhiều đối tượng yêu cầu nhiều kết nối
  • Nhiều đối tượng có thể gửi qua một kết nối TCP giữa Client và Server.

HTTP/1 [RFC 1945] HTTP/1 [RFC 2616] Thời gian đáp ứng

  • Một RTT để khởi tạo kết nối TCP
  • Một RTT cho yêu cầu HTTP và vài byte đầu tiên của đáp ứng HTTP được trả về
  • Thời gian truyền file
  • Thời gian đáp ứng HTTP không bền vững = 2RTT + thời gian truyền file.

Thời gian đáp ứng Persistent without pipelining

Persistent with pipelining

  • 1RTT cho việc kết nối
  • 1RTT cho mỗi đối tượng[không cần kết nối lại]
  • 1RTT cho việc kết nối
  • 1RTT cho tất cả đối tượng[không cần kết nối lại] Các phương thức: GET POST HEAD

Các phương thức: GET POST HEAD PUT DELETE

HTTP Cookies

  • Là dữ liệu được gửi từ server tới trình duyệt của người dùng [Trạng thái User-server]. Trình duyệt sẽ lưu trữ cookie này và gửi lại theo mỗi HTTP request về cho cùng server đó

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

  • Về cơ bản, cookie dùng để nói cho server biết các request đến từ một trình duyệt
  • Do HTTP là stateless, mọi request đến server đều giống nhau, nên server không thể phân biệt request được gửi đến là từ một client đã thực hiện request trước đó hay từ một client mới
  • Gồm 4 thành phần:
    1. Cookie header line của thông điệp đáp ứng HTTP
    2. Cookie header line trong thông điệp đáp ứng HTTP kế tiếp
    3. File cookie được lưu trữ trên host của người dùng, được quản lý bởi trình duyệt của người sử dụng
    4. Cơ sở dữ liệu back-end tại Website Một số ứng dụng: sự cấp phép, giỏ mua hàng, các khuyến cáo, trạng thái phiên làm việc của user [Web email].

Các mã trạng thái đáp ứng HTTP

  • Mã trạng thái xuất hiện trong dòng đầu tiên trong thông điệp đáp ứng từ server tới client.
  • Một số mã trạng thái thường gặp: o 200 OK – Yêu cầu thành công, đối tượng được yêu cầu sau ở trong thông điệp này o 301 Moved Permanently – Đối tượng được yêu cầu đã di chuyển, vị trí mới được xác định sau trong thông điệp này o 400 Bad Request – Thông điệp yêu cầu không được hiểu bởi server o 404 Not Found – Tài liệu được yêu cầu không tìm thấy trên server này o 505 HTTP Version Not Supported – Máy chủ không hỗ trợ phiên bản giao thức HTTP

Web caches [proxy server]

Mục tiêu:

  • Đáp ứng yêu cầu của client mà không cần liên quan đến server gốc [server chứa đối tượng mà client cần]
  • Giảm thời gian đáp ứng cho yêu cầu của client

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

  • Tương tác lệnh/ phản hồi tương tự HTTP, FTP: o Lệnh: văn bản ASCII o Phản hồi: mã và cụm trạng thái
  • Thông điệp phải ở dạng mã ASCII 7 bit  SMTP dùng kết nối bền vững, yêu cầu thông điệp phải ở dạng ASCII 7 bit, dùng CRLF để xác định kết thúc thông điệp

So sánh SMTP và HTTP

Giống nhau: đều có tương tác lệnh/phản hồi, các mã trạng thái dạng ASCII.

Khác nhau:

SMTP HTTP Đẩy Kéo Nhiều đối tượng được gửi trong thông điệp nhiều phần

Mỗi đối tượng được đóng gói trong thông điệp phản hồi của nó

Các giao thức truy cập mail

SMTP: truyền dẫn/lưu trữ vào server của người nhận

Giao thức truy cập mail: trích xuất từ server

  • POP[Post Office Protocol][RFC 1939] o Đăng nhập vào lấy hết thư từ mail server về client
  • IMAP[Internet Mail Access Protocol] [RFC 1730] o Phức tạp hơn POP o Cho phép lưu trữ và xử lý thư trên máy chủ
  • Gmail, Yahoo, Outlook,..

2 DNS

DNS [Domain Name System]: hệ thống phân giải tên miền, chuyển đổi các tên miền website sang địa chỉ IP dạng số và ngược lại

Ta đã biết rằng các thiết bị người dùng truy cập vào host device thông qua địa chỉ IP 32-bit và cổng Port. Nhưng chúng thường khó nhớ hơn so với việc truy cập

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

thông qua tên, ví dụ “Google”. Vì thế ta cần dịch vụ có thể dịch ngược từ tên miền ra địa chỉ IP tương ứng và ngược lại

Phân giải tên miền:

  • Truy vấn lặp: server được liên lạc sẽ trả lời với tên server đã liên lạc
  • Truy vấn đệ quy: đẩy trách nhiệm phân giải tên cho name server đã được tiếp xúc => Tải nặng tại các tầng trên của hệ thống phân cấp

Các dịch vụ DNS:

  • Dịch tên host ra địa chỉ IP
  • Bí danh host
  • Bí danh mail server
  • Phân phối tải

Các DNS có thẩm quyền:

  • DNS server của riêng tổ chức cung cấp các tên host có thẩm quyền để ánh xạ địa chỉ IP cho các host được đặt tên của tổ chức đó.
  • Có thể được duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ.

DNS name server cục bộ:

  • Không hoàn toàn theo cấu trúc phân cấp.
  • Mỗi ISP [nhà cung cấp dịch vụ Internet] có một server cục bộ.
  • Khi một host tạo một truy vấn DNS, truy vấn sẽ được gởi đến DNS server cục bộ của nó.

Một khi name server học cách ánh xạ, nó sẽ caches ánh xạ đó.

  • Các mục cache sẽ biến mất sau một vài lần TTL [time to live, là thời gian tồn tại của một bản ghi [record] cấu hình tên miền được nhớ bởi một máy chủ DNS trung gian]
  • TLD servers thường được cache trong các name server cục bộ
  • Các name server gốc không thường xuyên được truy cập

Các mục được cache có thể hết hạn sử dụng

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

  • Bên gửi chỉ rõ địa chỉ IP đích và số port cho mỗi packet
  • Bên nhận lấy địa chỉ IP và số port của người gửi từ packet được nhận => Dữ liệu được truyền có thể bị mất hoặc được nhận không thứ tự

Lập trình socket với TCP

TCP: client phải tiếp xúc với server

  • Tiến trình server phải được chạy trước
  • Server phải tạo socket để mời client đến liên lạc
  • Tạo socket TCP, xác định địa chỉ IP, số port của tiến trình server
  • Khi client tạo socket: client TCP thiết lập kết nối đến server TCP
  • Khi đã tiếp xúc với client: server TCP tạo socket mới cho tiến trình server để truyền thông với client đó => TCP cung cấp việc truyền các byte tin cậy và theo thứ tự giữa các client và server

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

Chương 3: Tầng Transport

3 Các dịch vụ tầng vận chuyển

Cung cấp truyền thông logic giữa các tiến trình ứng dụng đang chạy trên các host khác nhau

Các giao thức [protocol] chạy trên các hệ thống đầu cuối

  • Phía gửi: chia nhỏ các thông điệp [message] ứng dụng thành các segments, sau đó chuyển các segments này cho tầng Mạng
  • Phía nhận: tái kết hợp các segments thành các thông điệp [message], các thông điệp này được chuyển lên tầng Ứng dụng

Giao thức tầng Vận chuyển dành cho các ứng dụng: TCP và UDP

Quan hệ giữa Tầng Vận chuyển và tầng Mạng:

  • Tầng Mạng: truyền thông logic giữa các host
  • Tầng Vận chuyển: truyền thông logic giữa các tiến trình. Dựa trên dịch vụ tầng mạng

So sánh giao thức TCP và UDP

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

  • Connectionless[phi kết nối]: không bắt tay giữa bên nhận và bên gửi; mỗi segment được xử lí độc lập

Ứng dụng của UDP: DNS, SNMP... Các ứng dụng đa phương tiện trực tuyến chịu mất mát data nhưng cần tốc độ như live video, stream...

Chủ Đề