728x90
모든 레퍼런스는 K-MOOC : 네트워크 기초 (성균관대 안성진 교수님) 입니다.
1. 전송 프로토콜과 UDP
프로세스 간의 통신
- 데이터 링크 계층은 이웃한 두 노드 사이의 프레임 전달에 관여
- IP와 같은 네트워크 계층은 두 호스트 사이의 패킷 전달에 관여
- 수송 계층 프로토콜은 프로세스 프로세스 사이의 메시지전달에 관여
- 프로세스 to 프로세스 전달
- 포트 번호가 프로세스 간의 전달에 사용
프로세스 간의 통신
- 클라이언트 / 서버 구성
- 프로세스간의 통신은 클라/서버 구성을 통해서 이루어짐
- 포트 번호는 “수송 계층에서 사용하는 (논리적인) 주소”로서 특정 호스트에서 실행 되는 프로세스를 구분하기 위해 사용
- 클라이언트 프로그램은 포트 번호를 갖게 되는데 OS에 의해 선택된다.
- 이러한 포트는 일시적으로 할당되고 사라져서 “임시 포트 번호”라 한다.
- 서버 프로그램은 인터넷에서 식별을 위해 동일한 포트 번호를 갖는다.
- 이러한 포트는 고정적으로 할당 되고, 모두가 알고 있어야 하기 때문에 “Well-known, 알려진 포트 번호”라 한다.
포트 번호
- IANA (Internet Assigned Numbers Authority)는 포트 번호를 3개의 영역으로 구분
- Well-known ports : 0 ~ 1023, 인터넷 서비스를 위해 사용
- Registered ports : 1024 ~ 49151, 특정 응용을 위해 기업이 사용
- Dynamic ports : 49152~65535, 임시 포트(Ephemeral ports)로 이용
UDP (User Datagram Protocol)
- 비 연결형, 비 신뢰성 수송 프로토콜 (대신 효율적)
- 흐름제어나 에러제어가 없음
- UDP가 에러를 검출하면 단순히 폐기
- 연결 설정이나 종료과정이 없음
- 데이터그램들 사이의 서로 관련이 없으며, 번호가 붙지 않음
- 각 UDP 데이터그램은 서로 다른 경로로 전달
- → 수신자는 수신 메시지로 “오버 플로우” 될 수 있음
- → 송신자는 “메시지가 유실되거나 중복”되었는지 알 수 없음
- 포트 번호를 이용해서 데이터 전송이 가능하다.
- UDP는 오버헤드가 작은 아주 단순한 프로토콜에 이용
- 53번 포트 == DNS
- SNMP
UDP Datagram
- UDP는 8바이트의 고정된 헤더를 갖음
- 체크섬의 계산은 선택 사항
- Checksum은 IP나 ICMP와 달리 가상헤더를 만들어서 계산
- 가상헤더, UDP헤더, 데이터에 대해 체크섬 수행
- 가상헤더는 IP패킷의 헤더에서 가져온 정보로 구성
UDP의 사용
- 간단한 요청 - 응답 서비스에 적합
- 프로세스 내부에서 흐름제어, 에러제어를 갖는 경우 적합
- 멀티 캐스팅에 적합
- SNMP 같은 망관리 할 때 사용
TCP 프로토콜
TCP의 기능
- TCP는 프로세스 간 통신, 스트림 전달 서비스, 전이 중 통신, 연결 지향 서비스, 신뢰성 있는 서비스를 제공
- 연결 설정과 해제 과정이 존재
- 데이터의 안전한 도착을 확인하는 “ACK를 사용”하여 신뢰성 있는 전송을 제공
- TCP는 프로세스 간의 통신을 위해 포트 번호를 사용
Well-known ports used by TCP
TCP의 특징
- TCP는 모든 바이트에 번호를 부여
- 번호는 흐름제어와 에러제어에 사용
- 세그먼트의 순서번호는 해당 세그먼트가 나르는 데이터의 첫 번째 바이트 번호
- ACK번호는 수신해야 할 다음 바이트 번호
- 이전의 모든 바이트를 안전하게 받았음을 의미
세그먼트 형태
- 헤더는 20바이트이며, 옵션이 있으면 60바이트까지 존재, 4바이트 단위로 표시
- 제어 필드
- 여러 비트가 동시에 설정될 수 있음
- 보정적 ACK (NACK)가 없음
- 긴급 데이터
- 우선적으로 데이터 처리되길 원할 수 있음
- 제어 필드의 PSH와 긴급 포인터 (Urgent Pointer)가 사용
- PSH 비트 설정
- 송신 TCP는 수신 TCP가 버퍼링 하지 말고 즉시 데이터를 응용에게 전달 할 것을 요구
- 지연된 전송은 대화 식 응용 (Interactive applications) 에서는 바람직하지 않음
- RST
- 비정상적인 상황이나 오랫동안 통신이 없으면 현재 연결을 끊음
- 체크섬
- 오류 검사
- TCP에서 체크섬은 “강제사항”
- UDP와 같이 “가상헤더를 포함” 하여 계산
연결 설정
TCP는 3단계 메시지 교환 (Three-way handshake)를 통해서 연결 설정
클라 : 클라는 연결을 요청하는 SYN 세그먼트 전송
서버 : SYN, ACK를 포함하는 세그먼트로 응답
클라 : ACK를 보냄
- 1. SYN → 2) SYN + ACK → 3) ACK
연결 해제
- 해제는 3단계와 4단계 메시지 교환을 제공
- 3way : 즉시 연결 종료
- 4way : Half-close 상태 (수신은 가능함)
- 3 Way
- 4 Way
흐름 제어 (속도 제어, 데이터 크기 제어 등등)
- 송신 TCP가 목적지로 부터 ACK를 수신하기 전에 보낼 수 있는 데이터의 양을 정함
- TCP는 슬라이딩 윈도우 프로토콜을 이용
- TCP는 바이트 단위로 윈도우 크기 (수신 가능한 데이터 양) 를 명시
- 윈도우 크기는 시간에 따라서 변할 수 있음
읽을 거리
DNS의 작동원리와 이를 공격하는 방법
http://www.itworld.co.kr/t/62078/네트워크/108921#csidx481ffd60918f3308a8d2a41ce45126d
'CS 전공 지식 > 네트워크' 카테고리의 다른 글
09. (링크 상태, 경로 벡터) 라우팅과 멀티 캐스팅 (0) | 2022.05.24 |
---|---|
08. 패킷 전달과 거리 벡터 라우팅 (0) | 2022.05.24 |
07. IP 주소 자동 할당, 변환과 주소 매핑 (0) | 2022.05.24 |
06. IP 주소의 응용 (0) | 2022.05.24 |
05. 이동통신과 인터넷 프로토콜 (0) | 2022.05.24 |
04. 무선 LAN과 네트워크 연결 장치 (0) | 2022.05.20 |
03. LAN 매체와 유선 LAN (0) | 2022.05.19 |
02. 스위칭과 다중접속 프로토콜 (0) | 2022.05.17 |
댓글