공부?/국비 지원 일기장

33일차 - TCP UDP

무무요 2024. 8. 21. 17:41

 

=======

 

재분배(redistribute) 실습

 

Topology

다른 프로토콜(Static->dynamic)에서 통신이 되게 하려면 재분배를 해야한다.

기본 IP 세팅을 해주고 나가는길이 하나 이기 때문에 R1에서 Default route 세팅을 해준다.

나머지 R2, R3는 RIP 세팅

 

R2에서 재분배 세팅

(config)# ip route 1.0.0.0 255.0.0.0 2.0.0.1 

(config)#router rip

(config-router)# redistribute static

 

 

sh ip route로 확인

 

R3에서도 확인 해보면 R1에 설정한 대역들이 들어왔다

R2(RIP)에서 재분배를 해줬기 때문에 RIP로 들어온걸 확인할 수 있다

 

마지막으로 1.1.1.1 컴퓨터에서 5.5.5.1 컴퓨터로 ping을 쳐보면

ping이 가는걸 볼 수 있다.

 

=======

 

ACL(Access Control List)
- Router 내부 정책을 통해 데이터를 Filtering 해주는 역할
- 정책에 따른 트래픽 필터링, 식별, 분류, 암호화, 변환 작업 등을 수행함
- ACL 정책 은항상위 에서 아래로 순차적으로 적용됨
1. 순서대로 적용
2. 가장 하단은 Deny ALL, 보안정책이 한줄이라도 있어야 깔린다. 한줄이라도 없다면 permit

=======

NAT(Network Address Translation)
- 주소 변환 기술
- 공인IP 부족 현상을 완화하기 위해 제안된 기술
- 사설 IP를 공인 IP로 변환 

사설IP로 접속 가능한 방식
주소풀 방식(맵핑), 포트포워딩 , Static NAT


=======

4계층 Transport


역할
- 서비스 구분(port넘버 지정)
- 데이터 전송방식 결정
주소
- port number
장비
- L4 S/W

Port number
- 시스템 내부의 프로세스 또는 프로그램을 식별하기 위해 사용하는 식별 값 (왜 찾아왔는지)
- 프로그램 설계 시 사용할 port number가 지정 됨
- IANA에서 관리함
- 2^16 만큼 존재한다 = 65536개(0번~65535번)

Port 주소 구분
- 사용 목적에 따라 3가지로 분류해서 사용됨
  - * Well Known Service port(0~1023) -> 잘 알려진 서비스 프로그램용으로 예약된 주소(많이 예약된 주소)
  - Registered Port(1024~49151) -> Online용으로 개발된 프로그램의 네트워크 통신을 위해 할당하는 주소
  - Dynamic/Private Port(49152~65535) -> 등록하지 않고 임의로 사용할 수 있는 주소

Client 프로세스의 Port
- 프로세스가 동작할 때 마다 관리 주체인 운영체제에 의해 임의 port가 할당 됨

Server 프로세스의 Port (개발자가 지정한다)
- 개발 단계에서 미리 지정된 port를 사용하도록 정의 함 
  - 잘 알려진 서비스용 서버 -> well known Service port
  - 상업용으로 개발된 서버 -> registered port

 

문을 열고 기다린다.

UDP(User Datagram Protocol)
- 데이터의 빠른 전달을 보장하기 위해 사용 됨
- 빠른 속도 보장을 위해 대부분의 기능을 제한 함
  - 비 신뢰성, 비 연결 지향성 , 최소화된 header

 

UDP를 이용하는 Service 종류
- 빠른 통신 속도가 필요한 서비스 -> 실시간 통신, 음성서비스에 많이 사용
- 정보 해석 및 전달 서비스
  - DNS -> UDP 53 , DHCP -> UDP 67 / 68
- 빠른 파일 전송
  - TFTP -> UDP 69

 

UDP Header
- Header의 크기 -> (고정) 8 bytes

 

- Source Port Address(2byte)
  - 출발지 서비스 주소(포트넘버)
- Destination port(2byte)
  - 목적지 서비스 주소(포트넘버)
- Length(2byte)
  - Header + Payload 크기 (PDU 길이)
- Checksum(2byte)
  - 4계층 Segment 전체와 3계층 정보 중 일부분에 대한 오류검사 값

 

TCP(Transmission Control Protocol)
- 데이터 전달의 신뢰성을 최대한 보장
- 연결 지향
  - 데이터를 전달할 논리적인 연결을 먼저 구성 -> 3way Handshake
  - 연결 설정 -> 데이터 전송 -> 연결 종료
- 신뢰성 보장
  - 순차적으로 데이터를 전송 함
  - 확인 응답 및 재전송
  - 재전송 하는 매커니즘이 있으면 신뢰성이 있다고 판단
- 흐름제어
  - 데이터 전달에 지연 현상이 발생했을 때 데이터의 양을 조절 ->Slinding Window
  - 버퍼 공간 , 버퍼가 안쌓여서 버퍼링이 걸린다. 컴퓨터 성능이 좋으면 버퍼를 보내는 쪽이 느릴수도, 네트워크 문제일수도있다
  - 버퍼는 낮은쪽을 맞춰준다.
  - Header에 Window에 버퍼 사이즈를 적는다.


3way Handshake
- 실제 데이터를 주고 받기전에 한다. 

TCP를 이용하는 Service 종류
- 정확한 데이터 전달이 필요한 대부분의 서비스
- 파일 전송 : FTP -> TCP 20(data), TCP 21(Control)
- WEB 서비스 : HTTP -> TCP 80

 


TCP Header
- Header 크기 -> option필드의 크기에 따라 가변적 -> 최소 20byte ~ 최대 60byte
- TCP의 동작을 지시하는 메세지를 생성하여 연결상태를 제어 함 -> TCP Flags
- 하나의 연결을 통해 한 단위에 Data(Application Data)를 전달

ACK number = 그 다음번호를 적어 보낸다
  - 일반 확인 응답 = seq 100 전달 , 처리가 잘 된 경우 그다음 번호 요청 , ACK 200 전달 
     - 잘 확인했는지 확인하며 서로 주고 받는다. 확인 번호를 주고 받는다. 
  - 누적 확인 응답 = 
  - 선택적 확인 응답 = 

Port number
SMTP : 25
SSH : 원격접속시 안전하게 접속하기위해 쓰는 보안 프로토콜 :22
SSL : 보안 웹접속시 사용되는 보안 프로토콜 :443
POP3 : 110
Telnet : 23
IMAP : 143
RDP : 3389
HTTP: 80
DNS = TCP 53 or UDP 53 
신뢰성 TCP - 주 DNS서버와 보조 DNS서버간의 Zone 파일을 동기화 할때 = 
동기화로 데이터를 받을때 오류가 나면 오류가 나지 않을때 까지 계속 다시 받는다 = 
신뢰성 있게 데이터가 넘어와야 하니 신뢰성이 있는 TCP를 사용

빠르게 보낼땐 UDP - query 질의 = FQDN에 대한 query는 UDP 프로토콜을 사용한다.