일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 컴퓨터 보안 키분배
- Git
- cs231n
- rust
- react-cookie
- 메세지인증코드
- 파이썬
- 자바스크립트 비동기
- 커널제거
- 인공지능
- 협업필터링
- recommender
- 커널생성
- pagerank
- 인페인팅
- 머신러닝
- image restoration
- 키분배 알고리즘
- 딥러닝
- 러스트
- feynman's restaurant
- 프라미스
- tcp
- Hits
- brew 권한
- 비동기 프로그래밍
- Readme image
- 파인만의 식당문제
- computer vision
- 페이지랭크
- Today
- Total
목록Computer science/Computer Network(컴퓨터 통신) (4)
Worth spreading
Window는 모르겠다... MAC에서 traceroute 명령어를 사용해서 destination까지 어떤 경로(라우터)를 거치는지 알 수 있다 예제에서는 브라운대학교 cs 홈페이지를 들어갔다 $ traceroute -w 1 www.cs.brown.edu 결과는 다음과 같다 하나의 숫자가 하나의 hop이라고 보면 된다. 13쯤에 보면 산호세를 거쳐 14에 뉴욕으로가고 가고가고 가다가 20에서 브라운 대학교에 도착한다20hop이 걸린 셈이다.* * *로 표시된 것은 아마 라우터가 공개되지 않도록 돼있는듯하다
TCP 는 Rwnd를 이용한 flow control을 제공한다. 그런데 이것에는 한가지 결함이 있다. 수신자는 데이터를 수신했을 때 보내는 ACK 신호의 data segment에 rwnd 값을 담아서 송신자에게 보낸다. Rcv window가 꽉 차서 수신자가 rwnd를 0으로 표기해서 보내면 송신자는 rwnd에 여유가 생겼다는 신호를 받을 때까지 데이터를 전송하지 않는다. 그런데 만약 수신자가 더이상 보낼 ACK가 없다면 송신자와 수신자는 모두 하염없이 기다리는 상황이 된다.이러한 문제를 방지하기 위해 송신자는 rwnd = 0 라는 신호를 받게 되면 rwnd가 0이 아닌 값이라는 ACK를 받을 때까지 1byte의 데이터를 수신자에게 계속 보낸다.
code : Event : ACK received, with ACK field value of y if (y > SendBase) { SendBase = y If (there are currently any not yet acknowledged segments) Start timer } else { /*a duplicate ACK for already ACKed segment */ increment number of duplicate ACKs received for y if (number of duplicate ACKs received for y == 3) /* TCP fast retransmit */ resend segment with sequence number y } break; - 송신자가 수신자..
Question : Why do you think TCP avoids measuring the SampleRTT for retransmitted segments? Answer1 : The retransmitted segments contain the same data and the same sequence numbers as the previously sent packets. Therefore, for the retransmitted segments, we would expect the same ACK numbers as the previously sent TCP segments. When we receive these particular ACKs from the receiver, we don't rea..