1. TCP와 UDP

1) TCP(Transmission Control Protocol)

- 특징 : 접속형, 신뢰형, 흐름 제어, 혼잡 제어, 바이트 스트림 통신

- 플래그 비트 표

플래그 의미
URG 긴급 포인터가 있음을 표시
ACK 확인 응답번호가 기술돼 있음을 표시
PSH 데이터를 가능한 빨리 응용계층에 보내야 함을 표시
RST 연결을 재설정 하기를 원함을 표시
SYN 연결을 초기화하기 위해 순서번호 동기화
FIN 송신측이 데이터의 전송을 종료

 

※ tcp 헤더 포맷

 

2) TCP 연결 방식

① TCP 연결 설정

- 능동적 열림 : 클라이언트는 서버가 열어 놓은 포트로 TCP 연결 요청, SYN을 보내는 쪽

- 수동적 열림 : 서버는 네트워크 응용을 수행하기 위해 정해진 포트를 열고 클라이언트의 요청을 기다림, SYN 메시지를 수신하는 쪽

- Three-way Handshake를 통해서 TCP 연결

② TCP 연결 종료

- Four-way Handshake를 통해서 TCP 연결 종료

※ Three-way Handshake & Four-way Handshake

 

3) UDP(User Datagram Protocol)

- 특징 : 비연결형, 비상태정보, 경량의 오버헤드, 비정규적인 송신률, 최선의 서비스

※ UDP 헤더 포맷

 

4) TCP와 UDP의 차이점

서비스 TCP UDP
신뢰성   - 패킷이 목적지까지 도달했는지 확인
  - 패킷이 도달할 때마다 ACK를 수신
  - 신뢰성 있는 프로토콜
  - ACK를 사용하지 않음
  - 패킷이 그들의 목적지에 도달되는 것을 보장하지 않음
  - 신뢰성 없는 프로토콜
연결   - 연결 지향적
  - 핸드쉐이킹 과정 수행
  - 비연결지향적
패킷 순서   - 패킷 내에 순서 번호 사용 X
혼잡 제어 O X
용도   - 신뢰성 있는 전송   - 스트리밍 비디오와 브로드캐스트 등 실시간 전송
속도의 오버헤드   - 상당한 양의 자원을 사용하며 UDP보다 느림   - 더 적은 자원을 사용하고 TCP보다 빠름

 

 

2. Telnet, SSH

1) Telnet

- 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신의 컴퓨터처럼 사용할 수 있는 원격 접속 서비스

- 원격 컴퓨터를 이용할 수 있는 사용자 계정이 필요

- TCP 포트 : 23번

- 원격 접속 후 통신 시 바이트스트림 형식으로 데이터를 주고받고, 데이터를 암호화되지 않아 정보가 노출될 가능성이 큼

 

2) SSH (Secure SHell)

- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일 복사도 가능한 응용 프로그램

- TCP 포트 : 22번

- 다른 컴퓨터와 통신 시 암호화 기법을 사용하기 때문에 안전한 통신 기능이 제공됨

 

 

3. DNS

1) DNS(Domain Name System)

- 웹사이트 접속 시 외우기 어려운 IP 주소 대신 사용하는 도메인 이름

- 입력한 도메인을 실제 네트워크 상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 일련의 과정

 

2) DNS 구성 요소

① 도메인 네임 스페이스(Domain Name Space)

- 도메인 네임 스페이스라는 규칙으로 도메인 이름 저장 분산

 

② 네임 서버(Name Server) : 권한 있는 DNS 서버

- 해당 도메인 이름의 IP 주소를 찾음

 

③ 리졸버(Resolver) : 권한 없는 DNS 서버

- DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능 수행

 

3) DNS 동작 방식

 

① 도메인 주소 naver.com 입력 시 도메인 주소들을 가지고 있는 DNS 서버에 접속 

② 서버에 접속한 도메인과 연결된 IP 정보 (223.130.195.95)를 확인 후 IP를 사용자 PC에 전달

③ 사용자 PC는 전달받은 서버의 IP 주소로 접속

④ 서버의 IP로 연결된 브라우저에 서버의 내용(홈페이지)을 출력

 

위와 같이 잘 접속되는 것을 확인할 수 있다.

 

 

4. 공인 IP, 사설 IP

 

 

1) 공인 IP

- 사용자의 로컬 네트워크를 식별하기 위해 ISP(Internet Service Provider)가 제공하는 IP 주소

- 공용 IP 주소, 즉 외부에 공개되어 있는 IP 주소

- 공인 IP는 전세계에서 유일한 IP 주소를 갖게 됨

- 인터넷에 연결된 다른 PC로부터의 접근 가능 → 방화벽 등의 보안 프로그램 설치 필요

 

2) 사설 IP

- 일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소

- 로컬 IP, 가상 IP라고도 함

- IPv4의 주소 부족으로 인해 서브넷팅된 IP로 라우터에 의해 로컬 네트워크 상의 PC나 장치에 할당

- 하나의 네트워크 안에서 유일

- 외부 접근 불가능

 

 

5. 포트포워딩, 외부포트, 내부포트

1) 포트포워딩

- 외부의 기기에는 고정된 IP만 전달하고, 외부 기기가 내부에 접근할 수 있도록 내부의 공유기 관리자에서 설정하는 과정

- 내부 컴퓨터에 접근하려면 특정 포트를 열어줘야 함

- 고유 IP에 특정 포트를 부여해줌으로써 내부망에 특정 PC를 찾아갈 수 있도록 설정해주는 것

위와 같이 PC들은 각각의 고유 주소를 가지고 있고, 고유 IP에 특정 포트를 부여해줌으로써 내부망에 특정 PC를 찾아갈 수 있도록 설정해준다. 즉, 외부 IP 172.19.20.12:3306으로 접속 시 라우터는 출발지 포트(3306)와 매칭되는 목적지 포트(3306)로 연결시켜준다.

 

2) 외부포트

- 외부에서 접속 시 사용할 포트

 

3) 내부포트

- 내 컴퓨터에서 애플리케이션에 접속 시 사용하는 포트

 

※ 포트포워딩 실습

- 내 PC에 Nginx 설치 후 포트포워딩하여 내 휴대폰으로 접속해보기 (와이파이 연결 X, 셀룰러로 연결)
- 내 핸드폰에서 PC로 어떤 과정을 거쳐서 접속 되는지 그려보기.

 

 

 

 

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

네트워크 쉽게, 더 쉽게  (0) 2024.02.01
3주차  (0) 2024.02.01
포트포워딩 실습  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22
1주차  (0) 2024.01.22

+ Recent posts