| Bộ giao thức Internet |
| --- |
| Tầng ứng dụng (Application layer) |
| * 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ả...*
 |
| Tầng giao vận (Transport layer) |
| * TCP
* UDP
* CCP
* SCTP
* RSVP
* *xem tất cả...*
 |
| Tầng mạng (Internet layer) |
| * IP
	+ IPv4
	+ IPv6
* ICMP
* ICMPv6
* ECN
* IGMP
* IPsec
* *xem tất cả...*
 |
|  Tầng liên kết (Link layer) |
| * ARP
* NDP
* OSPF
* L2TP
* PPP
* PPTP
* STP
* MAC
	+ Ethernet
	+ DSL
	+ ISDN
	+ FDDI
* *xem tất cả...*
 |
| * x
* t
* s
 |

**BGP**, viết tắt của từ tiếng Anh *Border Gateway Protocol*, là giao thức tìm đường nòng cốt trên Internet. Nó hoạt động dựa trên việc cập nhật một bảng chứa các địa chỉ mạng (*prefix*) cho biết mối liên kết giữa các hệ thống tự trị (*autonomous system*, tập hợp các hệ thống mạng dưới cùng sự điều hành của một nhà quản trị mạng, thông thường là một nhà cung cấp dịch vụ Internet, *ISP*). BGP là một giao thức vector đường đi (*path vector*). Khác với các giao thức tìm đường khác như RIP (vector độ dài), OSPF (trạng thái liên kết), BGP chọn đường bằng một tập các chính sách và luật. Phiên bản BGP hiện nay là phiên bản 4, dựa trên RFC 4271.

BGP hỗ trợ tìm đường liên vùng phi lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm đường (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ 203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh mạng)

BGP được sử dụng thay thế cho EGP và xóa hẳn mạng xương sống NSFNET nhằm giúp cho Internet trở thành một hệ thống phân tán đúng nghĩa.

Ngoài việc sử dụng BGP giữa các AS, BGP cũng có thể được sử dụng trong các mạng riêng quy mô lớn do OSPF không đáp ứng được. Một lý do khác là dùng BGP để hỗ trợ multihome.

Đa số người sử dụng Internet thường không sử dụng BGP một cách trực tiếp. Chỉ có các nhà cung cấp dịch vụ Internet sử dụng BGP để trao đổi đường đi. BGP là một trong những giao thức quan trọng nhất đảm bảo tính kết nối của Internet.

Hoạt động của BGP
-----------------

Các thiết bị tìm đường (router) sử dụng BGP kết nối từng cặp (peering) với nhau bằng cách thiết lập phiên làm việc trên giao thức TCP qua cổng 179. Phiên kết nối này được duy trì bằng việc gửi các thông điệp keep-alive 19 byte mỗi 60 giây (mặc định).

Có bốn loại thông điệp BGP là open (mở phiên kết nối), update (thông báo hoặc rút lại một đường đi), notification (thông báo lỗi), keep-alive (duy trì phiên kết nối)

BGP có 4 thông điệp kết nối

Thứ tự ưu tiên trong cơ chế tìm đường của BGP
---------------------------------------------

* Chọn đường đi tường minh trong bảng trước(so với đường đi mặc định)
* Chọn đường đi có trọng số cao nhất (weight) (chỉ với router của Cisco)
* Chọn đường đi có độ ưu tiên cục bộ cao nhất (local preference)
* Chọn đường đi do chính người quản trị mạng cài đặt trên router (static route, có thuộc tính origin là INCOMPLETE)
* Chọn đường đi đi qua ít AS nhất (AS path ngắn nhất)
* Chọn đường đi có nguồn gốc bên trong trước (origin = IGP < EGP)
* Chọn đường đi có độ ưu tiên gần/xa thấp nhất MED (Multi exit discriminator)
* Chọn đường đi ra bên ngoài trước (external path)
* Chọn đường đi có độ đo IGP đến hop tiếp theo thấp nhất (IGP metric to the next hop)
* Chọn đường đi tồn tại trong bảng lâu nhất (oldest one)
* Chọn đường đi đến router tiếp theo có BGP ID thấp nhất

Các vấn đề hiện tại của BGP
---------------------------

* Đường đi không ổn định, thay đổi liên tục theo chu kỳ (route flapping)
* Sự tăng trưởng của kích thước bảng tìm đường
* Độ trễ của việc hội tụ bảng tìm dường (thời gian để cập nhật bảng tìm đường cho tất cả router khi có sự thay đổi, convergence delay)
* Vòng lặp trong việc chuyển thông tin đường đi (looping behavior)
* Độ tin cậy và cơ chế mã hóa thông tin

Tham khảo
---------