네트워크
두 개 이상의 노드가 링크를 통해 유선 또는 무선으로 서로 연결되어 있어 리소스(데이터)를 주고 받을 수 있는 시스템
※ 노드 : PC, 프린터, 스캐너, 서버 등 통신이 필요한 각종 장비
※ 링크 : LAN 선, 전선, WIfi, VPN 신호 등 유선 또는 무선으로 노드를 인터넷에 연결시킬 수 있는 도구
- 처리량
링크 내에서 성공적으로 전달된 데이터의 양을 의미 - 대역폭
주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수(단위 : bps 초당 송/수신 bit 수) - 트래픽
특정 시점에 링크 내에 ‘흐르는’ 데이터의 양
(※ 파일을 다운로드 할 때 발생되는 데이터의 누적량이며 처리량과는 다름) - 지연 시간
요청이 처리되는 시간을 말하며 어떤 메세지가 두 장치 사이를 왕복하는 데 걸린 시간을 의미
네트워크 토폴로지
노드와 링크의 연결 방식에 따라서 분류한 개념
- 트리 토폴로지 : 계층형 토폴로지로 트리 형태로 배치한 네트워크 구성을 말한다.
- 버스 토폴로지 : 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말한다.
※ 이 외에도 스타 토폴로지, 링형 토폴로지, 메시 토폴로지 등 다양한 토폴로지 존재 - 병목 현상 : 전체 시스템의 성능이나 용량이 네트워크 구성으로 인해 제한을 받는 현상을 의미
(※ 회선 연결등의 문제로 발생하는 트래픽에 비해 처리량이 낮은 것을 의미
- 네트워크 분류
LAN 상 하 근거리 통신망 MAN 중 중 지역 대도시 지역 통신망 WAN 하 상 광역 국가간 통신망 - 네트워크 관련 명령어
1) ping : 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
2) netstat : 접속되어 있는 서비스들의 네트워크 상태를 표시
3) nslookup : DNS에 관련된 내용을 확인
4) traceroute : 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어
계층 모델
인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프토콜의 집합이며 TCP/IP 4계층 모델로 설명하거나
OSI 7계층 모델로 설명한다.
- 애플리케이션 계층
사용자와 네트워크 사이에 필요한 아래와 같은 여러 기능들을 제공하는 층
FTP : 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜 HTTP : 웹 사이트를 이용하는 데 쓰는 프로토콜 SSH : 보안되지 않은 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로로토콜 SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜 DNS : 도메인 이름과 IP 주소를 매핑해주는 서버 telnet : 원격 접속 프로토콜 snmp : 네트워크 장치 상태 모니터링 프로토콜 dhcp : ip 주소, 서브넷 마스크, 게이트웨이 주소 등 네트워크 구성 정보를 자동으로 할당받을 수 있는 프로토콜
- 전송 계층
TCP, UDP 같은 전송 방식과 포트 번호를 결정하여 신뢰성 있는 전송을 위해 사용되는 계층 - 네트워크 계층
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
최적의 경로를 선택하기 위해 라우팅을 수행한다.
※ 패킷 : 네트워크에서 주고받는 데이터를 작게 분할한 단위 - 링크 계층
전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
HTTP & HTTPS
특징 | HTTP | HTTPS |
암호화 | 사용하지 않음 | 사용함 |
보안 | 낮음 | 높음 |
전송 데이터 | 평문 | 암호화된 데이터 |
사용 용도 | 웹 브라우징, 파일 전송, 메시지 전송 | 웹 브라우징, 파일 전송, 메시지 전송, 전자 상거래 |
장점 | 구현이 간단함, 데이터 전송 효율성이 높음 | 데이터가 안전하게 전송됨 |
단점 | 데이터가 안전하지 않음 | 구현이 복잡함, 데이터 전송 효율성이 낮음 |
HTTP
HTTP는 인터넷상에서 데이터를 전송하기 위한 프로토콜로 아래와 같은 특징이 있다.
- 비연결성
HTTP 연결은 요청과 응답이 완료되면 네트워크 자원 낭비 방지를 위해 연결을 FIN 해버린다.
따라서 다시 요청을 하면 새롭게 연결을 해야한다.
따라서 HTTP Keep Alive 헤더를 사용해 일정 시간 동안 요청을 유지할 수 있도록 한다. - 무상태
연결 종료 시 모든 자원이 해제되어 서버에서 클라이언트의 상태 또는 요청한 내용을 저장하지 않는 것을 의미한다.
상태 정보 또는 요청한 내용 정보가 필요한 경우가 있을 수 있어 이를 Cookie와 Session을 사용하여 유지한다.
- Cookie
클라이언트 컴퓨터에 저장되는 클라이언트의 요청 및 상태 정보 - Session
서버에 저장되는 클라이언트의 요청 및 상태 정보
- Cookie
HTTPS
HTTPS는 보안 계층인 SSL/TLS를 이용해 TTP의 보안을 강화한 웹 통신 프로토콜이다.
데이터를 송신할 때 응용 계층에서 보안 계층의 SSL?TLS로 데이터를 보내면 데이터를 암호화해 전송 계층으로 전달한다.
암호화 방식으로 대칭 키 암호화 방식과 공개 키 암호화 방식이 있다.
- 대칭 키 암호화 방식
암호화와 복호화에 동일한 키를 사용하는 암호화 방식
- 송신자가 둘만의 비밀 대칭키로 암호화한다.
- 수신자가 파일을 다운 받을 때 비밀 대칭키도 같이 받아 복호화한다.
- 우리가 사용하는 대부분의 암호화 방식은 보안성 보다 효율성이 높은 대칭 키 암호화 방식이다.
추가로 전송 계층 보안(TLS) 프로토콜 등을 사용하여 데이터를 암호화한다.
- 공개 키 암호화 방식
암호화와 복호화에 다른 키를 사용하는 암호화 방식
- 송신자가 수신자의 공개키를 통해 수신자의 개인키로만 복호화가 가능하도록 파일을 암호화함
- 수신자가 파일을 다운 받은 후 자신의 개인키를 사용하여 복호화
- 디지털 서명 및 인증 등 높은 보안이 요구되는 경우 공개 키 암호화 방식을 사용한다.
TCP & UDP
특징 | TCP | UDP |
연결 유형 | 연결형 | 비연결형 |
순서 보장 | 보장됨 | 보장되지 않음 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
통신 방식 | 1:1 통신 | 1:1, 1:N, N:N 통신 |
오류 검사 | 검사됨 | 검사되지 않음 |
효율성 | 낮음 | 높음 |
헤더 크기 | 크다 | 작다 |
사용 예시 | FTP, HTTP, SMTP | DNS, DHCP, VoIP |
장점 | 순서 보장, 오류 검사, 안정성 | 효율성, 속도 |
단점 | 효율성 | 순서 보장, 오류 검사, 안정성 |
패킷 교환 방식
데이터를 작은 단위인 패킷으로 나누어 전송하는 방식이며 TCP UDP는 패킷 교환 방식을 통해서 데이터를 전송한다.
- 가상 회선 방식
데이터를 주고받기 전에 패킷을 전송할 경로인 가상 회선을 설정하여 모든 패킷을 같은 경로로 전송한다. - 데이터그램 방식
패킷마다 최적의 경로로 전송되는 방식으로, 송신부에서 보낸 패킷의 순서와 수신부에 도착하는 패킷의 순서가 다를 수 있다.
TCP 핸드셰이킹
TCP는 송신부와 수신부가 1대1로 연결되어 패킷을 주고받는 전송 방식으로 연결하는 과정이 필요하다.
연결을 시작할 때는 3 - way 핸드셰이킹을, 연결을 종료할 떄는 4 - way 핸드셰이킹을 한다.
송신부와 수신부가 서로 연결에 대한 아래와 같은 flag 값을 주고받으며 연결 과정을 거친다.
- SYN : 연결 생성 flag
- FIN : 연결 종료 flag
- ACK : 수신자가 데이터를 받았음 flag
- RST : 연결 재설정 flag
- PSH : 빠른 응답이 필요한 데이터를 응용 계층으로 즉시 전송할 때 사용
- URG : 다른 데이터보다 우선순위가 높은 데이터를 전송할 때 사용
3 - way 핸드셰이킹
데이터를 주고받기 전 송신부와 수신부를 연결하는 과정이며 다음 3가지 과정으로 이루어진다.
- SYN 패킷 전송
송신부가 수신부로 SYN 패킷과 임의의 숫자 N을 보낸다.
송신부는 수신부로부터 응답이 오기 전까찌 SYN_SENT 상태가 된다. - SYN - ACK 패킷 전송
수신부가 SYN 패킷을 받으면 ACK 패킷와 N+1과, 다시 받은 SYN 패킷와 임의의 숫자 M을 송신부로 전송한다.
수신부는 SYN_RECEIVED 상태가 된다. - ACK 패킷 전송
송신부기 ACK + SYN 패킷을 받으면 ESTABLISHED 상태가 되고 다시 받은 수신부에 ACK 패킷과 M+1 값을 보낸다.
ACK 패킷을 받으면 수신부도 ESTABLISHED 상태가 된다.
4 - way 핸드셰이킹
데이터를 주고받은 후 TCP 연결을 해제할 때 이뤄지는 과정이다,
- FIN 패킷 전송
송신부가 수신부로 FIN 패킷을 보낸다. 이 때 송신부는 FIN_WAIT1 상태가 된다, - ACK 패킷 전송
수신부가 송신부로 ACK 패킷을 전송한다.이 때 수신부는 CLOSE_WAIT 상태가 된다.
송신부에서 ACK 패킷을 받으면 이 때 송신부는 FIN_WAIT2 상태가 된다. - FIN 패킷 전송
수신부가 송신부로 FIN 패킷을 전송한다. 이 때 송신부는 LAST_WAIT 상태가 된다. - ACK 패킷 전송
송신부가 수신부로 ACK 패킷을 전송한다.이 떄 송신부는 TIME_WAIT 상태에서 일정 시간 후 CLOSED 상태가 된다.
수신부에서 ACK 패킷을 받으면 이 때 수신부는 CLOSED 상태가 된다.
TCP 제어 방법
TCP의 데이터 신뢰성을 보장하기 위한 제어 방법으로, 흐름 제어, 혼잡 제어, 오류 제어가 있다.
- 흐름 제어
데이터 송신부와 수신부에서 데이터 처리 속도의 차이 때문에 생기는 데이터 손실을 방지하는 방법이다.
- 정지 - 대기
송신부에서 수신부의 ACK 메시지를 받지 않으면 다음 패킷을 보내지 않는 방식이다., - ACK 패킷 전송
수신부에서 설정한 윈도우 크기만큼 데이터를 연속적으로 보낼 수 있게 해서 제어하는 방식이다.
- 정지 - 대기
- 혼잡 제어
송신부의 데이터 전달 속도와 네트워크 속도 차이로 데이터 손실이 발생하는 것을 방지하는 방법이다.
참고
https://velog.io/@nnnyeong/Network-TCP-3-way-4-way-Handshake
'cs기초' 카테고리의 다른 글
컴파일러 & 기타 (0) | 2023.08.10 |
---|---|
프로세스 & 스레드 & 메모리 (0) | 2023.08.10 |
컴퓨터 & 운영체제 (0) | 2023.08.10 |