Giáo trình Nhập môn mạng

Tính hiệu suất(utilization) của giao thức dừng và chờ (stop and wait protocol ),Với Giả thuyết: kích thước gói tin là 2KB, đường link (transmission rate) là 100Mbps, độ trễ lan truyền giữa hai đầu cuối (end-end delay) là 15ms. Lưu ý : 1MB làm tròn thành 1000KB và tìm câu trả lời gần với đáp số nhất.

pptx144 trang | Chia sẻ: hoant3298 | Lượt xem: 1259 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Nhập môn mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNGIGIỚI THIỆUInternet là gì? Mạng Máy Tính ?Chia sẻ tài nguyên (ổ cứng, cơ sở dữ liệu, máy in,các phần mềm tiện ích.ASử dụng các dịch vụ mạng CQuản lí tập trung, bảo mật và backup tốt.BKhi sử dụng mạng máy tính ta sẽ được các lợi ích:Tất cả đều đúng.DINTERNETDMANBLANCKỹ thuật dùng để nối kết nhiều máy tính với nhau trong phạm vi một văn phòng gọi là:WANATất cả phương án trên đều sai DTốc độ truyền dữ liệu CCông tác tổ chức quản lí BKích Thước vùng địa lí ACho biết nét đặc trưng để phân biệt LAN, MAN, WAN là gì ? Byte/phútDByte/sCBit/sBĐơn vị đo thông lượng là: Bit/phútAIPDTCP_IPBIPCONFIGCLệnh nào cho biết địa chỉ IP của máy tính: FTPATất cả phương án đều sai DKiểm tra máy tính có hoạt động tốt hay không BKiểm tra máy tính có kết nối vào mạng được hay khôngCLệnh Ping dùng để làm gì ?Kiểm tra máy tính có đĩa cứng hay không ATerminal - MainframeARemote AccessCPeer-To-PeerBTrong các mô hình sau, mô hình nào là mô hình mạng được dùng phổ biến hiện nay: Client - ServerDInternet là gì? Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các mạng máy tính được liên kết với nhau. Hệ thống này truyền thông tin theo kiểu nối chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao thức IP). {=>Internet gồm các mạng máy tính được liên kết với nhau.} (Mạng của Mạng Máy Tính.)Giao thức là gì?Giới thiệuGiao thức con người:“Bây giờ là mấy giờ?”“Tôi có một câu hỏi”Giới thiệu thông điệp cụ thể đã được gửi các hành động cụ thể được thực hiện khi các thông điệp được nhận, hoặc các sự kiện khácGiao thức mạng:Máy móc chứ không phải là con ngườitất cả các hoạt động truyền thông trên Internet bị chi phối bởi các giao thức.1-12Giao 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 Là một tập các đặc tả mà mọi nhà sản xuất sản phẩm mạng phải dựa theo để thiết kế sản phẩm của mình. D   Là cơ chế “bắt tay ba lần” mà mọi thiết bị mạng đều phải thực hiện khi khởi động. B Là một tập các quy ước, thoả thuận mà các thiết bị trên mạng phải tuân theo để có thể liên lạc được với nhau. C Định nghĩa giao thức (protocol)Là các tín hiệu nhị phân truyền đi trước khi truyền dữ liệu thật sự. AGiới thiệuGiao thức con người và giao thức mạng máy tính:1-14Hỏi: các giao thức khác của con người? Xin chàoXin chàoRãnh không?2:00Trả lời kết nối TCPGet êu cầu kết nối TCPGiao thức là gì?Chuyển mạch gói: store-and-forwardGiới thiệuMất L/R giây để truyền tải L-bit packet trong đường link tại tốc độ R bpsstore and forward: toàn bộ packet phải đến bộ định tuyến trước khi nó có thể được truyền tải trên đường link tiếp theoVí dụ số về one-hop :L = 7.5 MbitsR = 1.5 MbpsĐộ trễ truyền tải one-hop = 5 sec1-15Thêm về độ trễ ngắn NguồnR bpsđích123L bitsmỗi packetR bpsend-end delay = 2L/R (giả sử không có độ trễ lan truyền)Chuyển mạch gói: store-and-forwardGiới thiệuend-end delay = 2L/R ,nếu có độ trễ lan truyền (với D1,D2 là độ dài đường link vật lí. c,d làn lượt là tốc độ lan truyền của D1,D2 .Bỏ qua thời gian chờ và xử lí gói tin)1-16NguồnR bps |D1đích123L bitsmỗi packetR bps |D22L/R + D1/c +D2/dAlternative core: chuyển mạch kênhGiới thiệuTài nguyên giữa 2 điểm cuối được phân bổ, được dành cho “cuộc gọi” giữa nguồn và đích:Trong sơ đồ, mỗi đường link có bốn kênh. Cuộc gọi dùng kênh thứ 2nd trong đường link trên cùng và kênh thứ trong đường link bên phải.Tài nguyên được dành riêng : không chia sẽcircuit-like (được đảm bảo) performanceMảnh kênh được cấp phát sẽ rãnh rỗi nếu không được sử dụng bởi cuộc gọi (không chia sẽ)Thường được sử dụng trong các mạng điện thoại truyền thống1-17Chuyển mạch kênh: FDM với TDMGiới thiệu1-18FDMfrequencytimeTDMfrequencytime4 usersVí dụ:Bốn nguồn gây ra chậm trễ gói tinGiới thiệudproc: xử lý tại nútKiểm tra các bit lỗiXác định đường raThông thường Tải nặng tại các tầng trên của hệ thống phân cấpFTPAHTTPCTCPBGiả sử cần viết một ứng dụng trao đổi dữ liệu mạng càng nhanh càng tốt, nên dùng giao thức nào sau đây ?UDPDTrình duyệt dùng kết nối thường trực (persitent) và URL đầy đủ của trang web được yêu cầu là: www-net.cs.umass.eduDTrình duyệt dùng kết nối thường trực (persitent) và URL đầy đủ của trang web được yêu cầu là: www-net.cs.umass.edu/index.htmlCTrình duyệt dùng kết nối thường trực (persitent) và URL đầy đủ của trang web được yêu cầu là: www-net.cs.umass.edu/docs/index.htmlBPhân tích một phần gói tin HTTP request từ trình duyệt gửi lên Web Server như sau:GET /docs/index.html HTTP/1.1\r\nHost: www-net.cs.umass.edu\r\n Ta biết được một số thông tin về trình duyệt là:Trình duyệt dùng kết nối không thường trực (non-persitent) và URL đầy đủ của trang web được yêu cầu là: www-net.cs.umass.edu/docs/index.htmlA22 RTTD1 RTTC11 RTTB20 RTTATrong một trang web có tham chiếu đến 10 file. Nếu sử dụng dịch vụ HTTP không bền vững (non-persitent), thì chúng ta cần bao nhiêu RTT để hoàn thành công việc trên ?Dòng header Set-cookie: của thông điệp phản hồi HTTPDTập tin cookie được lưu trữ trên máy tính người dung, được quản lý bởi trình duyệt của người dùngCCơ sở dữ liệu tại WebsiteBDòng header Set-cookie: của thông điệp yêu cầu HTTPACookies không bao gồm thành phần nào sau đây ?Truy vấn liên tụcDTruy vấn tuần tựBTruy vấn đệ quyCTrong quá trình phân giải tên miền, việc đẩy trách nhiệm phân giải tên cho máy chủ tên miền được gọi là:Truy vấn tương tác AĐiều khiễn nghẽnDTruyền tin cậyCĐảm báo hiệu suất tối thiểuBTính chất nào sau đây không được cung cấp bởi TCP service ?Điều khiển dòngANICDCookie CWeb serverBWeb cachesAĐể phục vụ nhu cầu ngày càng gia tăng của người sử dụng trên máy trạm (client) mà không cần nâng cấp năng lực phục vụ của server, ta có thể sử dụng:Server đang sử dụng HTTP phiên bản 1.1DServer trả về một nội dung có chiều dài là 530 bytesBServer trả về thành công một trang webCHTTP/1.1 404 Not FoundDate: Thu, 13 Oct 2016 06:29:17 +000Server: Apache/2.2.3 (CentOS)Content-Length: 530Connection: CloseContent-type: text/htmlWeb server được sử dụng là Apache/2.2.3APhát biểu nào sau đây là SAI ?CHƯƠNGIIITẦNG TRANSPORTTầng Transport3-82Các giao thức tầng transport trên InternetTin cậy, truyền theo thứ tự (TCP)Điền khiển tắt nghẽnĐiều khiển luồngThiết lập kết nốiKhông tin cậy, truyền không theo thứ tự: UDPKhông rườm rà, mở rộng “nổ lực tốt nhất” (best-effort) của IPKhông có các dịch vụ: Bảo đảm độ trễBảo đảm băng thôngapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transportTầng Transport3-83UDP: User Datagram Protocol [RFC 768]“đơn giản,” “bare bones” Internet transport protocolDịch vụ “best effort” (“nổ lực tốt nhất”), các segment UDP segments có thể bị:Mất mátVận chuyển không theo thứ tự đến ứng dụngConnectionless (phi kết nối):Không bắt tay giữa bên nhận và gửi UDPMỗi segment UDP được xử lý độc lậpỨng dụng UDP:Các ứng dụng đa phương tiện trực tuyến (chịu mất mát(loss tolerant), (cần tốc độ) (rate sensitive) )DNSSNMPTruyền tin cậy trên UDP: Thêm độ tin cậy tại tầng applicationPhục hồi lỗi tại các ứng dụng cụ thể!Tầng Transport3-84UDP: segment headerSố port nguồnSố port đích32 bitsDữ liệu ứng dụng(payload)Định dạng segment UDPlengthchecksumĐộ dài được tính bằng byte của segment UDP, bao gồm cả headerKhông thiết lập kết nối (cái mà có thể gây ra độ trễ)Đơn giản: không trạng thái kết nối tại nơi gửi và nhậnKích thước header nhỏKhông điều khiển tắt nghẽn: UDP có thể gửi dữ liệu nhanh như mong muốnTại sao có UDP?Tầng Transport3-85UDP checksumbên gửi:Xét nội dung của segment, bao gồm các trường của header, là chuỗi các số nguyên 16-bitchecksum: bổ sung (tổng bù 1) của các nội dung segmentBên gửi đặt giá trị checksum vào trường checksum UDP bên nhận:Tính toán checksum của segment đã nhậnKiểm tra giá trị trên có bằng với giá trị trong trường checksum hay không:NO – có lỗi xãy raYES – không có lỗi. Nhưng có thể còn lỗi khác nữa không? Xem phần sau.Mục tiêu: dò tìm “các lỗi” (các bit cờ được bật) trong các segment đã được truyềnRARPDARPCUDPBGiao thức nào dưới đây không đảm bảo dữ liệu gửi đi có tới máy nhận hoàn chỉnh hay không?TCPA 0111110110110100D0111110110110011C1000001001001011BCho 2 số nguyên 16 bit1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 01 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1Kết quả tính check sum của 2 dãy số nguyên trên là: 1000001001001100ATầng Transport3-88Internet checksum: ví dụVí dụ: cộng 2 số nguyên 16 bit1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 11 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 11 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1bit dưtổngchecksumLưu ý: khi cộng các số, bit nhớ ở phía cao nhất cần được thêm vào kết quảTầng Transport3-89rdt1.0: truyền tin cậy trên 1 kênh tin cậyKênh cơ bản tin cậy hoàn toàn (underlying channel perfectly reliable)không có bit lỗikhông mất mát góiCác FSMs riêng biệt cho bên gửi và nhận:Bên gửi gửi dữ liệu vào kênh cơ bản (underlying channel)Bên nhận đọc dữ liệu từ kênh cơ bản (underlying channel)chờ gọi từ tầng trênpacket = make_pkt(data)udt_send(packet)rdt_send(data)extract (packet,data)deliver_data(data)chờ gọi từ tầng dướirdt_rcv(packet)bên gửibên nhậnTầng Transport3-90Kênh cơ bản có thể đảo các bit trong packetchecksum để kiểm tra các lỗiCâu hỏi: làm sao khôi phục các lỗi:acknowledgements (ACKs): receiver explicitly tells sender that pkt received OKnegative acknowledgements (NAKs): receiver explicitly tells sender that pkt had errorssender retransmits pkt on receipt of NAKnew mechanisms in rdt2.0 (beyond rdt1.0):error detectionreceiver feedback: control msgs (ACK,NAK) rcvr->senderrdt2.0: kênh với các lỗiLàm thế nào để con người phục hồi “lỗi” trong cuộc trò chuyện?Tầng Transport3-91Kênh cơ bản có thể đảo các bit trong packetchecksum để kiểm tra các lỗiCâu hỏi: làm sao khôi phục các lỗi:acknowledgements (ACKs): bên nhận thông báo rõ ràng cho bên gửi rằng packet được nhận thành công (OK)negative acknowledgements (NAKs): bên nhận thông báo rõ ràng cho bên gửi rằng packet đã bị lỗiBên gửi truyền lại gói nào được xác nhận là NAKCác cơ chế mới trong rdt2.0 (sau rdt1.0):Phát hiện lỗiPhản hồi: các thông điệp điều khiển (ACK,NAK) từ bên nhận đến bên gửirdt2.0: kênh với các lỗiTầng Transport3-92rdt2.0 có lỗ hỏng nghiêm trọng!Điều gì xảy ra nếu ACK/NAK bị hỏng?Bên gửi sẽ không biết điều gì đã xảy ra ở bên nhận!Không thể đơn phương truyền lại: có thể trùng lặpXử lý trùng lặp: Bên gửi truyền lại packet hiện thời nếu ACK/NAK bị hỏngBên gửi thêm số thứ tự vào trong mỗi packet (sequence number)Bên nhận hủy packet bị trùng lặpdừng và chờBên gửi gửi một packet, sau đó chờ phản hồi từ bên nhậnTầng Transport3-93rdt2.1: bên gửi, xử lý các ACK/NAK bị hỏngWait for call 0 from abovesndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)rdt_send(data)Wait for ACK or NAK 0udt_send(sndpkt)rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isNAK(rcvpkt) )sndpkt = make_pkt(1, data, checksum)udt_send(sndpkt)rdt_send(data)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) udt_send(sndpkt)rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isNAK(rcvpkt) )rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) Wait for call 1 from aboveWait for ACK or NAK 1LLVấn đề là khi gói tin phải hồi ACK/NAK bị lỗi, máy gởi không biết chính xác dữ liệu đã truyền đến máy nhận có bị lỗi không.DVấn đề là khi gói tin phải hồi ACK/NAK bị lỗi, máy gởi không biết chính xác dữ liệu đã truyền đến máy nhận có bị lỗi không.CVấn đề là khi gói tin phải hồi ACK/NAK bị lỗi, máy gởi không biết chính xác dữ liệu đã truyền đến máy nhận có bị lỗi không.BVấn đề là khi gói tin phải hồi ACK/NAK bị lỗi, máy gởi không biết chính xác dữ liệu đã truyền đến máy nhận có bị lỗi không.AĐể thực hiện truyền nhận dữ liệu tin cậy trên đường truyền có lỗi ở cấp độ bit, hai cơ chế được sử dụng là: CheckSum để phát hiện lỗi ở cấp độ bit, và Phản hồi từ máy nhận (ACK: Máy nhận gửi ACK để nói rằng đã nhận gói tin dữ liệu không bị lỗi, NAK: Máy nhận gửi NAK để nói rằng đã nhận gói tin dữ liệu bị lỗi ). Hãy nêu vấn đề của giải pháp trên?Tầng Transport3-95rdt2.2: một giao thức không cần NAKChức năng giống như rdt2.1, chỉ dùng các ACKThay cho NAK, bên nhận gởi ACK cho gói cuối cùng được nhận thành côngBên nhận phải rõ ràng chèn số thứ tự của gói vừa được ACKACK bị trùng tại bên gửi dẫn tới kết quả giống như hành động của NAK: truyền lại gói vừa rồiTầng Transport3-96rdt3.0: các kênh với lỗi và mất mátGiả định mới: kênh ưu tiên cũng có thể làm mất gói (dữ liệu, các ACK)checksum, số thứ tự, các ACK, việc truyền lại sẽ hổ trợnhưng không đủCách tiếp cận: bên gửi chờ ACK trong khoảng thời gian “hợp lý” Truyền lại nếu không có ACK được nhận trong khoảng thời gian nàyNếu gói (hoặc ACK) chỉ trễ (không mất):Việc truyền lại sẽ gây trùng, nhưng số thứ tự đã xử lý trường hợp nàyBên nhận phải xác định số thứ tự của gói vừa gửi ACKYêu cầu bộ định thì đếm lùiTầng Transport3-97bên gửibên nhậnNhận pkt1Gửi pkt0Gửi ack0Nhận ack1Nhận ack0Nhận ack0Nhận pkt0Gửi pkt1Nhận ack1Gửi pkt0Nhận pkt0pkt0pkt0pkt1ack1ack0ack0(a) Không mất mátbên gửibên nhậnNhận pkt1Nhận pkt0Gửi ack0Gửi ack1Gửi ack0Nhận ack0Gửi pkt0Nhận pkt1Nhận ack1Gửi pkt0Nhận pkt0pkt0pkt0ack1ack0ack0(b) Mất góipkt1Xlosspkt1timeoutGửi lại pkt1Hành động của rdt3.0Slow start, congestion avoidance,fast retransmit,fast recoveryDChecksum,sequential number,ACK,NAK,retransmissionCSidling window,go –back-n, selective repeatBChecksum,sequential number,ACK,retransmission,timerAĐể đảm bảo quá trình truyền nhận dữ liệu đúng trên kênh truyền có khả năng có lỗi hoặc mất gói tin xảy ra, sử dụng giao thức truyền dữ liệu tin cậy rtd3.0, các điều kiện và thông số nào sau đây là cần thiết: Tầng Transport3-99Hành động của rdt3.0Nhận pkt1Gửi ack1(phát hiện trùng gói)pkt1bên gửibên nhậnNhận pkt1Nhận pkt0Gửi ack0Gửi ack1Gửi ack0Nhận ack0Gửi pkt0Gửi pkt1Nhận ack1Gửi pkt0Nhận pkt0pkt0pkt0ack1ack0ack0(c) Mất ACKack1Xlosspkt1timeoutGửi lại pkt1Nhận pkt1Gửi ack1(phát hiện trùng)pkt1bên gửibên nhậnNhận pkt1Gửi ack0Nhận ack0Gửi pkt1Gửi pkt0Nhận pkt0pkt0ack0(d) premature timeout/ delayed ACKpkt1timeoutresend pkt1ack1Gửi ack1send pkt0rcv ack1pkt0ack1ack0send pkt0rcv ack1pkt0Nhận pkt0Gửi ack0ack0Nhận pkt0Gửi ack0(phát hiệ trùng)Timeout/delayed ACKDMất ACKCMất gói tin dữ liệuBXem hình và cho biết đây là hành động nào của rdt 3.0? Không mất mátATất cả các đáp án trên DRtd2.2CRtd3.0BTrong giao thức truyền tin cậy (rtd),giao thức nào sau đây xử lí được trường hợp mất gói tin ACK: Rtd2.1ATầng Transport3-102Các giao thức Pipelinedpipelining: bên gửi cho phép gửi nhiều gói đồng thời, không cần chờ báo nhận đượcNhóm các số thứ tự phải được tăng dầnPhải có bộ nhớ đêm tại nơi gửi và/hoặc nhậnhai dạng phổ biến của các giao thức pipelined : go-Back-N, lặp có lựa chọnTầng Transport3-103Pipelining: độ khả dụng tăngbit đầu tiên của gói được truyền, t = 0bên gửibên nhậnRTT bit cuối cùng của gói được truyền, t = L / Rbit đầu tiên của packet đếnbit cuối cùng của packet đến, gửi ACKACK arrives, send next packet, t = RTT + L / Rbit cuối cùng của packet thứ 2 đến, gửi ACKbit cuối cùng của packet thứ 3 đến, gửi ACK3-packet pipelining tăng độ khả dung lên gấp 3 lần!Tầng Transport3-104Pipelined protocols: tổng quanGo-back-N:Bên gửi có thể có đến N packet không cần ACK trong đường ống ( pipeline)Bên nhận chỉ gởi cumulative ackSẽ không thông báo nhận packet thành công nếu có một gián đoạnbên gửi có bộ định thì cho packet sớm nhất mà không cần ACK (oldest unacked packet)Khi bộ định thì hết, truyền lại thất cả các packet mà không được ACKLặp có lựa chọn (Selective Repeat):Bên gửi có thể có đến N packet không cần ACK trong đường ống (pipeline)Bên nhận gửi rcvr ack rieeng biệt (individual ack) cho mỗi packetBên nhận duy trì bộ định thì cho mỗi packet không được ACKKhi bộ định thì của packet nào hết hạn, thì chỉ truyền lại packet không được ACK đóTầng Transport3-105Go-Back-N: bên gửiSố thứ tự k-bit trong header của packet“cửa sổ”(“window”) lên đến N packet liên tiếp không cần ACK được cho phépACK(n): thông báo nhận tất cả các packet lên đến n, bao gồm n số thứ tự - “ACK tích lũy”(“cumulative ACK”)Có thể nhận ACK trùng (xem bên nhận)Định thì cho packet sớm nhất đang trong tiến trình xử lý (oldest in-flight pkt)timeout(n): truyền lại packet n và tất cả các packet có số thứ tự cao hơn trong cửa sổ (window)Tầng Transport3-106Hoạt động GBNsend pkt0send pkt1send pkt2send pkt3(wait)bên gửibên nhậnreceive pkt0, send ack0receive pkt1, send ack1 receive pkt3, discard, (re)send ack1rcv ack0, send pkt4rcv ack1, send pkt5pkt 2 timeoutsend pkt2send pkt3send pkt4send pkt5Xlossreceive pkt4, discard, (re)send ack1receive pkt5, discard, (re)send ack1rcv pkt2, deliver, send ack2rcv pkt3, deliver, send ack3rcv pkt4, deliver, send ack4rcv pkt5, deliver, send ack5ignore duplicate ACK0 1 2 3 4 5 6 7 8 sender window (N=4)0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 Tầng Transport3-107Lặp có lựa chọn (Selective repeat)Bên nhận thông báo đã nhận đúng tất cả từng gói mộtĐệm các gói, khi cần thiết, cho sự vận chuyển trong thứ tự ngẫu nhiên đến tầng cao hơnBên gửi chỉ gửi lại các packet nào mà ACK không được nhậnBên gửi định thời cho mỗi packet không có gửi ACKCửa sổ bên gửi (sender window)N số thứ tự liên tụcHạn chế số thứ tự các gói không gửi ACKTầng Transport3-108Hành động của lặp lại có lựa chọngửi pkt0gửi pkt1gửi pkt2gửi pkt3(đợi)Bên gửiBên nhậnnhận pkt0, gửi ack0nhận pkt1, gửi ack1 nhận pkt3, buffer, gửi ack3nhận ack0, gửi pkt4nhận ack1, gửi pkt5pkt 2 timeoutgửi pkt2Xlossnhận pkt4, buffer, gửi ack4nhận pkt5, buffer, gửi ack5nhận pkt2; chuyển pkt2,pkt3, pkt4, pkt5; gửi ack2Ghi nhận ack3 đã đến0 1 2 3 4 5 6 7 8 sender window (N=4)0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 Ghi nhận ack4 đã đếnGhi nhận ack4 đã đếnQ: việc gì xảy ra khi ack2 đến?Gửi lại pkt1,pkt2,pkt3,pkt4DGửi lại pkt0,pkt1,pkt2,pkt3CGởi lại pkt2BGửi lại pkt2,pkt3,pkt4,pkt5AXem hình mô tả hoạt động của Go-back-N dưới đây, sau thời gian timeout, bên gửi sẽ hành động như thế nào?Tầng Transport3-110TCP: tổng quan RFCs: 793,1122,1323, 2018, 2581Dữ liệu full duplex:Luồng dữ liệu đi 2 chiều trong cùng 1 kết nốiMSS: kích thước tối đa của segment (maximum segment size)Hướng kết nối: Bắt tay (trao đổi các thông điệp điều khiển) khởi tạo trạng thái bên gửi và nhận trước khi trao đổi dữ liệuLuồng được điều khiển:Bên gửi sẽ không áp đảo bên nhậnpoint-to-point:Một bên gửi, một bên nhậnTin cậy, dòng byte theo thứ tự (in-order byte steam):Không “ranh giới thông điệp” (“message boundaries”)pipelined:Điều khiển luồng và tắt nghẽn của TCP thiết lập kích thước cửa sổ (window size)Tầng Transport3-111Cấu trúc segment TCP segmentport nguồnport đích32 bitsDữ liệu ứng dụng(độ dài thay đổi)Số thứ tựSố ACKreceive windowUrg data pointerchecksumFSRPAUheadlenKhông dùngTùy chọn (độ dài thay đổi)URG: dữ liệu khẩn cấp(thường không dùng)ACK: ACK #hợp lệPSH: push data now(thường không dùng)RST, SYN, FIN:thiết lập kết nối(setup, teardowncommands)Số byte bên nhận sẵn sàng chấp nhận Đếm bằngbytes dữ liệu(không bằng segment!)Internetchecksum(giống như UDP)SYN,DAT,PSH,RST,FIN,URGDSYN,ACK, PSH,DAT,CON,URGCCON, ACK, PSH,RST, FIN,URGBSYN, ACK, PSH, RST, FIN, URGATrong cấu trúc header của TCP Segment có 6 cờ là:Tầng Transport3-113Số thứ tự TCP và ACKCác số thứ tự:Dòng byte “đánh số” byte đầu tiên trong dữ liệu của segmentCác ACK: số thứ tự của byte kế tiếp được mong đợi từ phía bên kiaACK tích lũyHỏi: làm thế nào để bên nhận xử lý các segment không theo thứ tựTrả lời: TCP không đề cập, tùy thuộc người thực hiệnport nguồnport đíchsố thứ tựsố ACKchecksumrwndurg pointerSegment vào, đến bên gửiAsent ACKedsent, not-yet ACKed(“in-flight”)usablebut not yet sentnot usablekích thước cửa sổ Nsender sequence number space port nguồnport đíchsố thứ tựsố ACKchecksumrwndurg pointerSegment đi ra từ bên gửi11D0CY+1BX+1AMô tả quá trình bắt tay 3 bước trong kết nối TCP như hình:Ở bước 2, host B sẽ gửi gói tin sang host A có trường ACK number là bao nhiêu? Gói TCP SYN đầu tiên được gửi ra từ phía server DSố seq của gói SYN đầu tiên luôn luôn là 0CSYN bit của gói đầu tiên được gán bằng 1BĐiều nào sau đây là đúng về bắt tay 3 bước của TCPFIN bit của gói đầu tiên được gán bằng 1ASEQ=0,SYN=0DSEQ=ISN, SYN=0CSEQ=1,SYN =1BSEQ=ISN,SYN =1(ISN: initial sequence number)ATrong giao thức TCP, SYN segment sẽ có SEQ và giá trị SYN flag là bao nhiêu? SEQ=80, ACK=50DSEQ=40, ACK=50CSEQ=40,ACK =80BDựa trên hình dưới đây, giá trị của số thứ tự (SEQ)và ACK trong gói tin cuối cùng là bao nhiêu?SEQ=80, ACK=50ATầng Transport3-118TCP truyền dữ liệu tin cậyTCP tạo dịch vụ rdt trên dịch vụ không tin cậy của IPCác segment pipelinedCác ack tích lũyBộ định thì truyền lại đơn (single retransmission timer)Việc truyền lại được kích hoạt bởi:Sự kiện timeoutCác ack bị trùngLúc đầu khảo sát TCP đơn giản ở bên gửi:Lờ đi các ack bị trùngLờ đi điều khiển luồng và điều khiển tắt nghẽnTầng Transport3-119EstimatedRTT = (1- )*EstimatedRTT + *SampleRTTĐường trung bình dịch chuyển hàm mũ (exponential weighted moving average)ảnh hưởng của mẫu đã xảy ra sẽ làm giảm tốc độ theo cấp số nhântypical value:  = 0.125TCP round trip time và timeoutRTT (milliseconds)RTT: gaia.cs.umass.edu to fantasia.eurecom.frsampleRTTEstimatedRTTtime (seconds)Tầng Transport3-120Khoảng thời gian timeout (timeout interval): EstimatedRTT cộng với “biên an toàn”Sự thay đổi lớn trong EstimatedRTT -> an toàn biên lớn hơnƯớc lượng độ lệch SampleRTT từ EstimatedRTT: DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|TCP round trip time và timeout(typically,  = 0.25)TimeoutInterval = EstimatedRTT + 4*DevRTTestimated RTT“biên an toàn”100.5 msecDCác lựa chọn đều sai.C96 msecBXem thủ tục ước lượng RTT của TCP: Giả sử một kết nối TCP có 4 segment ACK quay về bên gửi và nhờ đó người ta đo được thời gian đi-về của segment thứ nhất (SampleRTT1) là 90 msec, thứ hai (SampleRTT2) là 110 msec, thứ ba (SampleRTT3) là 114 msec, và thứ tư (SampleRTT4) là 88msec. Giả sử hệ số anpha=0.2.Người ta ước lượng đucợ giá trị EstimatedRTT ngay sau khi ACK thứ tư quay về là: 92.88 msecATầng Transport3-122TCP: tình huống truyền lạiTình huống mất ACKHost BHost ASeq=92, 8 bytes of dataACK=100Seq=92, 8 bytes of dataXtimeoutACK=100Timeout sớmHost BHost ASeq=92, 8 bytes of dataACK=100Seq=92, 8bytes of datatimeoutACK=120Seq=100, 20 bytes of dataACK=120SendBase=100SendBase=120SendBase=120SendBase=92Tầng Transport3-123TCP: tình huống truyền lạiXACK tích lũyHost BHost ASeq=92, 8 bytes of dataACK=100Seq=120, 15 bytes of datatimeoutSeq=100, 20 bytes of dataACK=120Tầng Transport3-124TCP truyền lại nhanhChu kỳ time-out thường tương đối dài:Độ trễ dài trước khi gởi lại packet bị mấtPhát hiện các segment bị mất thông qua các ACKs trùng.Bên gửi thường gửi nhiều segment song songNếu segment bị mất, thì sẽ có khả năng có nhiều ACK trùng.Nếu bên gửi nhận 3 ACK của cùng 1 dữ liệu (“3 ACK trùng”), thì gửi lại segment chưa được ACK với số thứ tự nhỏ nhấtCó khả năng segment không được ACK đã bị mất, vì thế không đợi đến thời gian timeoutTCP truyền lại nhanhTầng Transport3-125XTruyền lại nhanh sau khi bên gửi nhận 3 lần ACK bị trùngHost BHost ASeq=92, 8 bytes of dataACK=100timeoutACK=100ACK=100ACK=100TCP truyền lại nhanhSeq=100, 20 bytes of dataSeq=100, 20 bytes of dataTầng Transport3-126TCP điều khiển tắt nghẽn: additive increase, multiplicative decreaseHướng tiếp cận: bên gửi tăng tốc độ truyền (kích thước cửa sổ), thăm dò băng thông có thể sử dụng, cho đến khi mất mát gói xảy raadditive increase: tăng cwnd bởi 1 MSS mỗi RTT cho đến khi mất gói xảy ramultiplicative decrease: giảm một nữa cwnd sau khi mất gói xảy racwnd: TCP sender congestion window sizeAIMD saw toothbehavior: thăm dò băng thôngadditively increase window size . Cho đến khi mất gói xảy ra (thì giảm một nữa kích thước cửa sổ)timeTầng Transport3-127TCP điều khiển tắt nghẽn: chi tiếtBên gửi giới hạn truyền tải:cwnd thay đổi, chức năng nhận biết tắt nghẽn trên mạngTCP tốc độ gửi:Ước lượng: gửi các byte cwnd, đợi ACK trong khoảng thời gian RTT, sau đó gởi thêm các bytelast byteACKedsent, not-yet ACKed(“in-flight”)last byte sentcwndLastByteSent- LastByteAcked SSThreshold thì máy gửi sẽ rất cẩn trọn để tránh gây ra congestion.Giả định rằng SSThreshold =4000 bytes, CWin =8000 bytes, kích thước của gói tin là 500 bytes.Máy gửi gửi 16 gói tin và nhận được 16 phản hồi. Hỏi giá trị của SSThreshold và CWin sau khi đã nhận được phản hồi là gì ?SSThreshold =4000 bytes, CWin =8000 bytesA0D1CVẫn giữ giá trị như trước khi gặp 3 ACK trùng nhau BBị cắt một nửaATrong TCP RENO, khi gặp 3 ACK trùng nhau, thì giá trị của congestion window được thiết lập lại bao nhiêu?Không phải các đáp án trên DTCP và UDPCTCPBTrong các giao thức giao vận Internet, giao thức nào có liên kết:UDPANút gửi phải truyền lại những dữ liệu đã bị mất trên đường truyền.DCác gói dữ liệu có phần header phức tạp hơn so với giao thức dạng connection-orientedBCung cấp một dịch vụ phân phát dữ liệu không đáng tin cậyCĐiều gì là đúng đối với các giao thức dạng connectionless (không kết nối)?Hoạt động chậm hơn các giao thức dạng connection-orientedAACK=1, SYN=0 DACK=1, SYN=1 BACK=0, SYN=1CGói tin TCP yêu cầu kết nối sẽ có giá trị của các cờ ?RST=1, SYN=1 ATCP: được sử dụng phổ biến. UDP: ít được sử dụngD TCP: truyền nhanh. UDP: truyền chậmCTCP: không có điều khiển luồng. UDP: có điều khiển luồngBTCP: truyền tin có bảo đảm. UDP: truyền tin không bảo đảmADiễn giải khác biệt chủ yếu giữa TCP và UDP là:12sD4.8sC3sB24sAGiả sử Host A muốn gửi một file có kích thước 3 triệu bytes đến Host B.Từ Host A đến Host B có 3 đoạn đường truyền nối tiếp nhau, với tốc độ truyền tương ứng là R1=1Mbps,R2=5Mbps,R3=2Mbps.Thời gian truyền file đến host B là:8D92C93B100ABên gửi gửi 1 TCP Segment có Sequence Number =92,và phần Payload (data)=8 bytes.Bên nhận sẽ trả lời với Acknowledgement Number là bao nhiêu để báo nhận thành công TCP Segment này?1 MbpsDKhông có đáp án đúng C3500/3 MbpsB500KbpsAGiả sử Host A muốn gửi một file có kích thước lớn đến Hot B. Từ Host A đến Host B có 3 đoạn truyền được nối tiếp nhau, với tốc độ truyền tương ứng là R1=500 Kbps,R2=2 Mbps, R3=1Mbps.Giả sử không có dữ liệu nào khác được truyền trên mạng. Thông lượng đường truyền (throughput) từ Host A đến Host B là: Điều khiển tắc nghẽn (Congestion control )DTruyền tin cậy (Reliable transmission)CĐảm bảo hiệu suất tối thiểu (Minimum throught guarantee) BNhững tính chất nào sau đây không được cung cấp bởi TCP Service?Điều khiển luồn (Flow control)A1000000 KBpsD1024 x1024 x1024 bpsC1000000000 bpsBĐường truyền có băng thông 1 Gbps có nghĩa là: 1024 MbpsA0.001D0.006C0.005BTính hiệu suất(utilization) của giao thức dừng và chờ (stop and wait protocol ),Với Giả thuyết: kích thước gói tin là 2KB, đường link (transmission rate) là 100Mbps, độ trễ lan truyền giữa hai đầu cuối (end-end delay) là 15ms. Lưu ý : 1MB làm tròn thành 1000KB và tìm câu trả lời gần với đáp số nhất. 0.003ATruyền lại nhanh DACK tích lũy CTimeout sớm.BXem hình vẽ đây là tình huống nào: Mất ACKATHE END

Các file đính kèm theo tài liệu này:

  • pptx_hoctap_suctremmt_com_ban_chinh_nhap_mon_mang_6622_2053680.pptx
Tài liệu liên quan