어흥
[CS] 컴퓨터 네트워크 본문
[OSI 7 계층]
1. 각 계층의 역할
- 전송 계층
TCP: 어플리케이션 계층 메세지 전달 보장, 오류 검출, 흐름제어(송수신자의 속도 일치), 혼잡제어(긴 메세지를 짧게 나눈다-> 네트워크 혼잡시 출발지의 전송속도 줄인다)
UDP: 신뢰성, 흐름제어, 혼잡제어 제공X, 오류 검출, 프로세스간 데이터 전달 제공
- 네트워크 계층: 논리 주소 지정, 라우팅
- 데이터링크 계층: 오류제어, 순서제어, 흐름제어
2. 데이터 단위
- 응용 프로그램: 메세지(Message)
- TCP/ UDP 통신: 세그먼트(Segment)
- 네트워크: 데이터그램(Datagram)
- 데이터링크: 프레임(Frame)
- 물리: 비트(Bit)
3. 기본적인 용어
- Node: 컴퓨터 네트워크상에 연결된 장치
- Host: 고유 IP 주소를 가진 Node
- Link: Node 간 물리적 연결 통로
- Hop: 거리의 단위로, 보통 1개의 링크
- 경로(Path): End to End까지의 이동 경로
- Protocol: 데이터 통신을 원활하게 진행하기 위해 필요한 규약
4. 흐름제어(Flow Control) v.s. 오류제어(Error Control) v.s. 혼잡제어(Congestion Control)
- 오류제어: 송신측에서 타이머를 설정하여 수신측으로부터 ACK를 정상적으로 받지 못했다면 재전송. ACK이 손실될 경우, 송신측에서 재전송하고 수신측에선 재전송 Data인지 새로운 Data인지 구분하기 위해 순서번호를 이용
- 흐름제어: 데이터 프레임의 전송속도를 조절. 송신이 수신보다 전송속도가 빠를 경우, 문제 발생 (Ex. Stop & wait, Sliding Window)
- 혼잡제어: 송신측의 데이터 전달과 네트워크의 처리속도 차이를 해결하기 위한 기법(Ex. Slow start, Fast Recovery)
- Slow Start: 윈도우 크기를 2배씩 늘리다가 혼잡할 경우 1로 낮춘다(1->2->4->8->1->2->3->4->...)
- Fast Recovery: 윈도우 크기를 2배씩 늘리다가 혼잡할 경우 반으로 낮춘다(1->2->4->8->4->5->6->....)
5. Handshake
- 2-Handshake(사용하면 안되는 2가지 예)
- 3-Handshake(연결 요청 시점에 이용)
- 4-Handshake(연결 종료 시점에 이용)
- ACK와 SYN(SEQ와 같다)의 관계
위의 그림을 통해 간단히 요약하자면 다음과 같다
ACK(SEQ N~N+99을 받은 후): N~N+99번 데이터를 받았으니, 다음에는 N+100번부터 달라는 의미로 ACK N+100을 보낸다
SEQ(SEQ N, 100byte를 보낼 때): SEQ N~N+99번에 해당하는 데이터를 전달
6. 출발지A -> 도착지B까지 메세지 전송과정
- 각 계층에서의 Packet 구성
1) 애플리케이션: M
2) 트랜스포트: Ht M
3) 네트워크: Hn Ht M
4) 링크: Hl Hn Ht M
- 링크 계층 스위치: 이더넷 주소까지만 인식할 수 있다 -> Hl까지만 접근가능
- 라우터: IP 주소까지만 인식할 수 있다 -> Hl, Hn까지만 접근가능
- 결론: 출발지 A에서 메세지 M을 보내기 위해 각 계층에서 Header를 추가하여 캡슐화 진행이후 전달
7. TTL(Time To Live)
- IPv4 Header의 필드중 하나
- 패킷의 남은 생명(3계층을 거칠때마다 1씩 줄어든다) -> 레이어 3 홉마다 1씩 줄어들고, 레이어 2 홉은 영향을 미치지 않는다
- 8비트로 구성 -> 0~255까지 사용 가능
- 목적지에 도착할 때 TTL의 값이 0을 만족해도 전달완료
- Ex) 독일에서 빠른 테스트 실행하면 미국까지 17홉, 일본까지 18홉
참고한 블로그
- brunch.co.kr/@toughrogrammer/16
'CS > 컴퓨터네트워크' 카테고리의 다른 글
UDP TCP HTTP (0) | 2021.10.28 |
---|