네트워크

05-네트워크 기초&기본 개념 공부.

hakstroy 2025. 3. 9. 12:06

## 포트???? --> 논리적 접속 위치

 : 하나의 컴퓨터 안에도 여러 "문이" 존재한다.

 : 포트번호로 구별한다(문 번호를)

  - 집(192.168.0.1) 안에 문 80번 : 웹서버(HTTP) / 문 443번 : 웹서버(HTTPS) / 문 22번 : 원격 접속(SSH) 존재
 : 하나의 컴퓨터에 여러가지의 네트워크 프로세스가 일어날 수 있다.
 여러대의 컴퓨터가(HTTP,SSH,FTP,,,) 인터넷을 통해서 하나의 컴퓨터와 소통을 하려고 할 때
 그렇게 되면, 프로토콜들을 구별해야 한다. 구별을 하기 위해서 포트를 통해 구별한다.
 IP + Port = Socket 가상의 파이프(소켓)
 : 방화벽은 누가 누구에게 어떤 방식(TCP/UDP)으로 , 어느 포트로 통신할 건지를 기준으로 통과 or 차단 결정

  - 단방향 : 출발지-->목적지 트래픽만 허용 (A->B)요청만 가능!

  - 양방향 : 출발지<-> 목적지 서로 요청/응답 가능해야 하는 서비스! 

내가 요청을 보내고 응답만 받는 구조인가? ✅ 단방향이면 충분
상대방도 내 쪽으로 먼저 접속할 수 있어야 하나? 🔁 양방향 필요
실시간 통신, RPC, 양쪽 서비스가 다 클라이언트+서버 역할? 🔁 양방향 필요 가능성 높음


**자주 쓰이는 프로토콜과 포트
 : 포트 | 프로토콜 |  용도
 : 20 |  FTP | 데이터전송
 : 22  | SSH | Secure Shell
 : 22 | SFTP | 데이터 전송
 : 25 | SMTP | 이메일 전송
 : 53 | DNS | Domain Name System(ex)naver.com
 : 80 | HTTP | 웹 페이지 전송
 : 443 | HTTPS | 웹 페이지 전송

**
Port Type  | Port Numbers | Description
: Well Known Ports | 0~1023 | 잘 알려진 프로토콜
: Registered Ports | 1024~49151 | 잘 알려지지 않았지만 등록된 프로토콜
: Dynamin Ports | 29152~65535 | 누구나 사용 가능한 포트

네트워크 소통 - Internet Protocol
단점
 - 데이터 전달이 제대로 안 이루어질 수 있다.
 - 데이터를 보내기만 하고, 잘 전달됐는지 확인하지 않는다.
 - 라우팅 과정에 패킷이 버려질 수도 있다.
 - 또는 프레이밍이 제대로 안 이루어져서 데이터가 손상될 수도 있다.

**TCP(Transmission Control Protocol)

 - 느리지만 안전하다(소포를 보내고 도착했는지까지 확인)
 - Internet Protocol의 단점들을 보안(완)하기 위해 만들어진 프로토콜이 바로 TCP이다.
 - Connection-Oriented 어플리케이션 소통이 끝날 때까지 커넥션이 꺼지지 않는다.
 - 데이터가 잘 전달됐는지 확인하고 그리고 제대로 전달이 안 됐을 시 다시 보낸다.
Frame 프레임
목적지 MAC 주소 | 출발지 MAC 주소 | 데이터(IP 패킷)
IP 패킷
소스(출발) IP 주소 | 목적지 IP 주소 | 데이터(TCP 세그먼트)
TCP 세그먼트
소스 포트 | 목적지 포트 | ...| checksum | data| Application Layer Protocol

**TCP 자세하게 보기.
클라이언트 <->  <-> 서버
ip-192.168.100.1       ip-192.168.10.1


**UDP(User Datagram Protocol)

 - 빠르지만 확인 안 한다.(엽서 보내기)
 - 동영상이나 웹 스트리밍을 할 때 주로 사용한다.
 - Connectionless 어플리케이션 소통이 안전하지 않습니다.
 - 데이터가 잘 전달됐는지 확인하지 않는다 그렇기에 제대로 전달이 안 됐을 시 다시 보내지 않는다. 
장점)
 - TCP보다 빠르고 가볍다.
 - TCP 헤더는 20바이트인 반면, UDP 헤더는 8바이트 밖에 되지 않는다.
 - UDP는 데이터가 잘 전달됐는지 확인하지 않기 때문에 빠르다.
Frame 프레임
목적지 MAC 주소 | 출발지 MAC 주소 | 데이터(IP 패킷)
IP 패킷
소스(출발) IP 주소 | 목적지 IP 주소 | 데이터(UDP 세그먼트)
UDP 세그먼트
소스포트 | 목적지 포트 | 길이 | checksum | data | Application Layer Protocol

**Application Layer Protocol
HTTP,SSH,FTP,SFTP,HTTPS: TCP 기반
DHCP,DNS : UDP 기반

1) DHCP(Dynamic Host Configuration Protocol)
  - Ports : 67,68 
  - Transport Layer Protocol : UDP
  - 네트워크에 연결된 디바이스들의 IP 주소들을 자동으로 할당을 해주는 프로토콜이다.
  - IP Address, Subnet Mask, Default Gateway 들을 할당한다.

 2) DNS(Domain Name System)
  - Ports : 53
  - Transport Layer Protocol : UDP
  - 도메인 주소를 IP 주소로 변경해주는 프로토콜이다.
ex) naver.com -> 223.130.195.200(naver IP)

3) Daytime
  - Port : 13
  - Transport Layer Protocol : TCP/UDP 이용할 수 있다.
  - 현재 날짜와 시간을 알려주는 프로토콜

4) SSH(Secure Shell)
  - Port : 22
  - Transport Layer Protocol : TCP
  - 멀리 떨어져 있는 호스트를 원격으로 연결시켜주는 프로토콜, 암호화를 사용하여 정보교환을 보호할 수 있다.
 
5) FTP(File Transfer Protocol)
  - Port : 20,21
  - Transport Layer protocol : TCP
  - 시스템간 파일전송을 하는 프로토콜이다.
  - 데이터가 텍스트로 전송되기 때문에 보안이 취약하다.
  - 요즘은 거의 사용하지 않는다. 대신 SFTP를 사용한다. (SSH를 이용해서 FTP 사용하는 거)

6) SFTP(Secure File Transfer Protocol)
  - Port : 22
  - Transport Layer Protocol : TCP
  - SSH를 활용하여 시스템간 파일전송을 하는 프로토콜이다.
  - 데이터가 암호화되어 전송되기 때문에 보안이 철저하다.

7) SMTP(Simple Mail Transfer Protocol)
  - Port: 25
  - Transport Layer Protocol : TCP
  - 클라이언트에서 이메일 서버에 이메일 전송을 하는 프로토콜이다. 
  - 암호화를 사용하여 이메일을 전송 가능하다.

8) IMAP(Internet Message Access Protocol)
  - Port: 143 
  - Transport Layer Protocol : TCP
  - 서버에서 이메일을 받아오는 프로토콜이다.
  - 유저들이 이메일 서버에 접속해서 메일들을 보고 다운받을 수 있게 해주는 프로토콜
  - 여러 디바이스에서 이메일 서버에 접속이 가능하다.(Gmail 등)

9) HTTP(HyperText Transfer Protocoll)
  - Port: 80
  - Transport Layer Protocol : TCP
  - 웹 사이트 브라우징 프로토콜
  - 웹서버에 웹페이지 정보를 요청(Request)하고 웹서버는 응답(reply)를 한다.
  - HyperText Markup Language(HTML)을 사용하여 정보를 전달한다.
  - 데이터가 텍스트로 전달되기 때문에 보안이 취약하다.

10) HTTPS(HyperText Transfer Protocol Secure)
  - Port : 443
  - Transport Layer Protocol : TCP
  - 암호화를 사용한 HTTP 프로토콜
  - 웹서버로부터 웹페이지 정보를 요청하고 받아온다.
  - Hypertext Markup Language(HTML)을 사용한다.
  - 데이터가 암호화되어 전달되기 때문에 보안이 좋다.


**인트라넷 vs 인터넷
 1) 인트라넷 - 개인의 공간, 건물, 비즈니스 내에서 사용 ex) 군대, 공단 
 2) 인터넷 - 거대한 네트워크망


**OSI7 계층 
7 - Application Layer -Data
   : 프로토콜을 담고있다.
6 - Presentation Layer - Data
   : 데이터를 그냥 보내지 않고 암호,복호화로 보낸다. (음악 파일을 어떤 파일,형식으로 보낼 것인가)
5 - Session Layer - Data 
   : 여러가지 컴퓨터와 한 컴퓨터와 소통중 프로그램들을 세션으로 구분
4- Transport Layer - Segment
3 - Network Layer - Packet
2 - Data Link Layer - Frame
1 - Physical Layer - Frame

**TCP/IP Model - 메시지 전송 방법
4 - Application Layer - Data
3 - Transport Layer - Segment
2 - Internet Layer - Packet
1 - Network Access Layer - Frame




Data -> Segment -> Packet -> Frame 담는다!

Frame안에 Packet 안에 Segment 안에 Data 담아서 인터넷을 통해 데이터를 전달한다.


**DMZ
ex) 내부 네트워크 <-> 방화벽 <-> DMZ <-> 방화벽 <-> 외부 네트워크
- Demilitarized Zone의 약자로 내부/외부망의 중간 지점을 의미한다.
  내부/외부 네트워크 사이에 중간지점에 위치하여 침입 차단 시스템 등으로 접근 제한을 
  수행하지만 외부에서 DMZ로의 직접 접근은 가능하다.
##참고 : https://hyeri0903.tistory.com/225 





**DNS(Domain Name System)
 - 호스트의 도메인이름(http://www.naver.com)을 네트워크 주소(192.168.1.0)으로 변환하거나
   그 반대의 역할을 수행하는 시스템이다. (문자열의 탈을 쓴 IP)
ex)
서비스  도메인 주소   IP주소
다음     daum.net     203.133.167.81
네이버  naver.com    223.130.200.104
구글     google.com  142.250.207.14

##참고 : https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EA%B0%9C%EB%85%90-%EB%8F%99%EC%9E%91-%EC%99%84%EB%B2%BD-%EC%9D%B4%ED%95%B4-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC#%E2%80%8Bdns_domain_name_system_%EB%9E%80?