Thông báo
Collapse
No announcement yet.
Giao thức TCP/IP và Web server với AVR
Collapse
This is a sticky topic.
X
X
-
Vâng ạ! em cảm ơn thầy! Vậy nếu ko muốn dùng 1 kết nối TCP cho nhiều request/response thì ta bỏ 2 trường này đi đc ạ! E thấy máy tính hình như vẫn dùng 1 phiên tcp cho nhiều cặp request và response.
-
Connection: keep-alive : cho phép dùng 1 kết nối TCP cho nhiều cặp http request/response (thông thường 1 phiên TCP dùng cho 1 request/response, sau đó đóng và mở 1 phiên TCP mới cho request/response mới).Nguyên văn bởi nacdanh90 Xem bài viếtThầy giải thích giúp em 2 trường trong http get với ạ!
+ Keep-Alive: 300
+ Connection: keep-alive có ý nghĩa là gì ko ạ?
Em hiểu nó là thời gian để giữ kết nối TCP liệu có phải vậy ko ạ? và số 300 kia chắc là thời gian nhưng em chưa biết đơn vị của nó là gì? Thầy giải thích thêm giúp em với ạ!
Keep-alive: 300: max timeout, đơn vị s.
Leave a comment:
-
Thầy giải thích giúp em 2 trường trong http get với ạ!
+ Keep-Alive: 300
+ Connection: keep-alive có ý nghĩa là gì ko ạ?
Em hiểu nó là thời gian để giữ kết nối TCP liệu có phải vậy ko ạ? và số 300 kia chắc là thời gian nhưng em chưa biết đơn vị của nó là gì? Thầy giải thích thêm giúp em với ạ!
Leave a comment:
-
Không được, một kết nối TCP thành công phải kết thúc bằng cờ FIN, đóng theo cách thông thường. Gửi RST chỉ trong trường hợp kết nối bị lỗi (không được chấp nhận, phía nhận không xử lý được dữ liệu,...) vì kết nối đóng bằng RST có thể khiến cho phía bên kia hủy bỏ dữ liệu đã nhận được mà không chuyển lên lớp ứng dụng.Nguyên văn bởi nacdanh90 Xem bài viếtthầy ạ ! giờ em để ý kĩ đoạn thầy bảo em "đóng ngay lập tức kết nối khi chưa gửi dữ liệu"? vậy khi đã gửi xong rồi và gửi Reset thì có đóng được kết nối TCP ngay không thưa thầy ?
Leave a comment:
-
thầy ạ ! giờ em để ý kĩ đoạn thầy bảo em "đóng ngay lập tức kết nối khi chưa gửi dữ liệu"? vậy khi đã gửi xong rồi và gửi Reset thì có đóng được kết nối TCP ngay không thưa thầy ?
Leave a comment:
-
Vâng ạ! EM cảm ơn thầy! Hi! thầy thức muộn vậy ạ ? Vậy thì khi client load xong dữ liệu em sẽ đóng kết nối bằng cách gửi gói tin với cờ RESET đc set cho nhanh đỡ phải thực hiện các bước sau!hi
Leave a comment:
-
Chỗ 700 đã nói là MSS. Còn window có ý nghĩa cho phía phát biết kích thức buffer dữ liệu mà phía thu có thể nhận đồng thời (chứa trong buffer trước khi truyền lên lớp ứng dụng). Như vậy phía phát sẽ không phát số byte (tính từ last ack) vượt quá window size, mà nó phải dừng lại để đợi ack mới. Với cơ chế đó thì window size/MSS chẵn hay không cũng vậy thôi mà.Nguyên văn bởi nacdanh90 Xem bài viếtVâng thưa thầy! Em đã điền thử điền trường Host là tên miền thì đươc. còn IP thì nó không tìm thấy a.vì theo như trên em nói chắc có lẽ tại cùng 1 IP đó có nhiều tên miền con nên chỗ Host đó phải điền là tên miền con .hì còn User Agent em điền bất kì được a.
Thầy cho em hỏi thêm một chút về phần TCP. Đoạn số 700 của thầy mỗi lần truyền dữ liệu TCP thì tối đa là 700 byte phải không ạ ? còn window là giới hạn mà khi bên nhận nhận được x gói tin có tổng bằng window thì phải gửi trả lại bên gửi một bản tin xác nhận đã nhận đủ để bên gửi gửi tiếp các gói tiếp theo phải ko ạ ? Nhưng nếu số gói x =window /MSS mà là một số ko chẵn thì nó sẽ xử lý thế nào ạ ?
Cờ FIN không phải là cờ yêu cầu đóng kết nối ngay lập tức, nó chỉ báo rằng phía gửi cờ FIN đã hoàn tất việc gửi dữ liệu và sẵn sàng để đóng kết nối, kết nối chỉ thực sự được đóng nếu phía bên kia cũng sẵn sàng đóng kết nối và gửi đi cờ FIN.
Nếu 1 trong 2 phía muốn đóng ngay lập tức kết nối khi chưa gửi dữ liệu (ví dụ server không đủ tài nguyên để mở thêm kết nối với client,...) thì nó sẽ gửi cờ RST (như trường hợp bạn gặp hôm trước). Cờ này đóng lập tức kết nối.
Leave a comment:
-
Thầy Tâm giải thích giúp em đoạn này với ạ ? Trong một phiên kết nối TCP. một trong 2 bên có thể gửi yêu cầu đóng kết nối ngay sau khi thiết nối 2 bên được thiết lập (chưa truyền dữ liệu) ko ạ ?
Nếu một bên muốn đóng kết nối thì nó chỉ gửi bản tin với cờ FIN đc set hay là cả cờ FIN và cờ ACK ạ ? và bên kia khi nhận được yêu cầu đóng kết nối sẽ gửi lại bản tin với các cờ như thế nào ạ ?
Leave a comment:
-
Vâng thưa thầy! Em đã điền thử điền trường Host là tên miền thì đươc. còn IP thì nó không tìm thấy a.vì theo như trên em nói chắc có lẽ tại cùng 1 IP đó có nhiều tên miền con nên chỗ Host đó phải điền là tên miền con .hì còn User Agent em điền bất kì được a.
Thầy cho em hỏi thêm một chút về phần TCP. Đoạn số 700 của thầy mỗi lần truyền dữ liệu TCP thì tối đa là 700 byte phải không ạ ? còn window là giới hạn mà khi bên nhận nhận được x gói tin có tổng bằng window thì phải gửi trả lại bên gửi một bản tin xác nhận đã nhận đủ để bên gửi gửi tiếp các gói tiếp theo phải ko ạ ? Nhưng nếu số gói x =window /MSS mà là một số ko chẵn thì nó sẽ xử lý thế nào ạ ?Last edited by nacdanh90; 19-04-2012, 23:09.
Leave a comment:
-
Host: Điền domain name hay địa chỉ IP đều được. Mỗi tên miền chỉ tương ứng với 1 địa chỉ IP thôi.Nguyên văn bởi nacdanh90 Xem bài viếtEm phát hiện ra lỗi này là do sau khi gửi bản tin thứ 2 thì TCP server sau khi nhận đc sẽ thực hiện kết nối và sau bước này client phải gửi tiếp một bản tin tcp khác (chẳng hạn GET HTTP). Trong giao thức http thầy giải thích rồi nhưng em đọc và khi thực hiện gặp phải một số vấn đề sau mong thầy giải đáp giúp em:
Thứ nhất: Trường Host: điền IP của server muốn load http vệ theo em biết thì ở đây điền IP của server vào cũng đc. Nhưng chẳng hạn cùng 1 server: 123.210.131.129 lại có nhiều tên miền con là : a .123 .com hoặc b .123 .com thì trong trường hợp này điền IP vào có được hay ko ả và nếu điền tên miền thì webserver có hiểu ko ạ ?
Thứ 2: User Agent, Trường Accept Text, language có quan trọng ko ạ ? Nếu load web về avr thì user Agent điền là trình duyệt gì ả
Em cảm ơn thầy trước!
User Agent: cung cấp thông tin cho Web sever biết client đang duyệt web bằng browser gì,... để từ đó Web server sẽ điều chỉnh nội dung trang web trả lại cho phù hợp, ví dụ duyệt bằng smartphone thì trang web sẽ được lượt bỏ bớt và layout lại cho phù hợp (tính năng này phụ thuộc vào web server)
Accept-Charset, Accept-Text, ... cho biết tập ký tự, bảng mã,... mà client có thể nhận. Ví dụ bạn dùng vi điều khiển làm client và không muốn nhận ký tự mã unicode thì có thể để: Accept-Charset: iso-8859-5, đừng cho UTF-8 hay unicode vào.
Tương tự vậy Accept-Language cho biết client muốn nhận nội dung trang web bằng ngôn ngữ nào.
Load về AVR thì User Agent điền gì tùy bạn thôi.
Tham khảo thêm: HTTP/1.1: Request
Leave a comment:
-
Em phát hiện ra lỗi này là do sau khi gửi bản tin thứ 2 thì TCP server sau khi nhận đc sẽ thực hiện kết nối và sau bước này client phải gửi tiếp một bản tin tcp khác (chẳng hạn GET HTTP). Trong giao thức http thầy giải thích rồi nhưng em đọc và khi thực hiện gặp phải một số vấn đề sau mong thầy giải đáp giúp em:Nguyên văn bởi nacdanh90 Xem bài viếtVâng ạ! hi! Thầy giải thích giúp em một lỗi sau mà em chưa hiểu nguyên nhận: đầu tiên gửi bản tin SYN đến server ở trên internet (seqNum=x,window=700,mss=700,SYN set). em đã nhận đc một bản tin(seqNum=y, window=8192,SYN,ACK set,ACK number=x+1)->bản tin xác nhận của server sau khi server đã nhận đc bản tin đầu tiên em gửi. Em lại gửi tiếp bản tin thứ 2 đến server(seqNum=x+1,window=700,ACK set(SYN=0),ACK number=y+1). Em tưởng sau bước này nếu server nhận đc bản tin thứ 2 nó sẽ mở kết nối TCP nhưng sao nó lại gửi trả lại một bản tin (RST set,window=0 ) ả ! Thầy giải thích giúp em lỗi này với ạ! Và Khi nào server sẽ gửi bản tin RESET tcp ả
Thứ nhất: Trường Host: điền IP của server muốn load http vệ theo em biết thì ở đây điền IP của server vào cũng đc. Nhưng chẳng hạn cùng 1 server: 123.210.131.129 lại có nhiều tên miền con là : a .123 .com hoặc b .123 .com thì trong trường hợp này điền IP vào có được hay ko ả và nếu điền tên miền thì webserver có hiểu ko ạ ?
Thứ 2: User Agent, Trường Accept Text, language có quan trọng ko ạ ? Nếu load web về avr thì user Agent điền là trình duyệt gì ả
Em cảm ơn thầy trước!
Leave a comment:
-
thầy tâm ơi giúp em với nếu mình dùng máy tính từ xa điều khiển về thì chương trình như thế nào ạ. Em đang làm đồ án " thiết kế và thi công mạch điều khiển thiết bị qua internet" vậy nên từ nãy tới giờ em thấy mình toàn phải đi ngược vấn đề ko à, vì ở đây toàn thấy máy tính nhận dữ liệu
Leave a comment:
-
Vâng ạ! hi! Thầy giải thích giúp em một lỗi sau mà em chưa hiểu nguyên nhận: đầu tiên gửi bản tin SYN đến server ở trên internet (seqNum=x,window=700,mss=700,SYN set). em đã nhận đc một bản tin(seqNum=y, window=8192,SYN,ACK set,ACK number=x+1)->bản tin xác nhận của server sau khi server đã nhận đc bản tin đầu tiên em gửi. Em lại gửi tiếp bản tin thứ 2 đến server(seqNum=x+1,window=700,ACK set(SYN=0),ACK number=y+1). Em tưởng sau bước này nếu server nhận đc bản tin thứ 2 nó sẽ mở kết nối TCP nhưng sao nó lại gửi trả lại một bản tin (RST set,window=0 ) ả ! Thầy giải thích giúp em lỗi này với ạ! Và Khi nào server sẽ gửi bản tin RESET tcp ảNguyên văn bởi nttam79 Xem bài viếtTrường Option trong TCP Header không qui định chiều dài bắt buộc, miễn là phải chẵn 32 bit (nếu không phải chèn thêm Padding vào). Trường data offset sẽ cho ta biết chính xác chiều dài của Header, từ đó ta biết được option dài bao nhiêu. Vì vậy trường Option có thể là 8, 12 byte,... Nội dung chứa trong trường option thì tùy thuộc vào dịch vụ. Tương tự vậy Header TCP của gói syn có thể dài 32 byte (12 byte option).Last edited by nacdanh90; 18-04-2012, 19:38.
Leave a comment:
-
IP động hay tĩnh đều được. Trong file AVRnet.h có phần cấu hình địa chỉ IP, nếu muốn set IP tĩnh, bạn khai báo IP, subnet mask, gateway,... ở đây. Nếu địa chỉ IP set ở đây là 0.0.0.0 thì board sẽ nhận IP động từ DHCP server khi vừa boot lên (chưa hỗ trợ nhận IP động khi cắm cable mạng vào).Nguyên văn bởi BMD2008 Xem bài viếtAnh Tâm ơi cho em hỏi. Phần này anh dùng địa chỉ IP để điều khiển là IP động hay IP tĩnh vậy
Leave a comment:
Bài viết mới nhất
Collapse
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phambao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 21:58 -
-
bởi ittcChào các anh em, tình hình là mình lo làm ăn không để ý sức khỏe, giờ có chút vấn đề rồi? không biết trên này có anh em nào độ tuổi U35 -> 40 đang có dùng các loại thuốc, thuốc bổ hay thực phẩm chức năng giúp bổ thận tráng dương,...
-
Channel: Tâm tình dân kỹ thuật
05-06-2026, 12:28 -
-
bởi theidiotcatTrong thế giới phần cứng năm 2026, AMD Ryzen 5 7500X3D không chỉ là một cái tên mới, nó là một tuyên ngôn về hiệu suất. Dựa trên các thử nghiệm khắt khe trong môi trường chơi game chuyên nghiệp, con chip này đã chứng minh rằng: bạn không cần...
-
Channel: Đánh giá sản phẩm DTVN
05-06-2026, 10:05 -

Leave a comment: