HTTP (HyperText Transfer Protocol)

  • Hypertext인 HTML을 전송하기 위한 통신 규약
  • 서버와 클라이언트 간의 데이터를 주고 받는 프로토콜
  • 텍스트, 이미지, 영상, JSON 등등 거의 모든 형태의 데이터를 전송 가능함
  • 80번 포트 사용
  • 클라이언트가 서버에 요청을 보내고, 서버가 응답을 클라이언트에 보내면 바로 연결이 끊어짐 (비연결, Connectionless)
  • 연결을 끊는 순간, 클라이언트와 서버 간의 통신은 끝나며 상태 정보를 유지하지 않음 (무상태, Stateless)

 

 

 

 

◆ HTTP의 문제

 

1. 암호화 기능이 없음

서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 문제가 존재. 단순 text 형식으로 주고받기 때문에 중간에 누군가가 신호를 가로챈다면 내용이 그대로 노출됨

 

2. 통신 내용 변경 가능

요청을 보낸 곳과 받은 곳의 리소스가 정확히 일치하는지 확인할 수 없으므로, 누군가가 중간에 데이터를 가로채 악의적으로 변조한다면 정확한 데이터를 주고받을 수 없게 됨

 

3. 신뢰할 수 있는 사이트인지 확인 불가

통신하려는 사이트를 따로 확인하는 작업이 없어, 다른 사이트가 통신하려는 사이트로 위장이 가능함

 

 

 

 

 

 

 


HTTPS (HyperText Transfer Protocol Secure)

  • HTTP + SSL(Secure Socket Layer) = 보안이 강화된 HTTP
  • 서버와 클라이언트 간의 모든 통신 내용이 암호화됨
  • 개인 정보와 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를 이용
  • 443번 포트 사용

* SSL = TLS(Transport Layer Security)

인터넷에서 정보를 암호화해서 송수신하는 프로토콜

 

 

 

 

 

◆ HTTPS의 동작 과정

 

HTTPS는 대칭키 & 비대칭키(공개키) 암호화를 모두 사용

 

HTTPS 연결과정(Hand-Shaking)에서 먼저 서버와 클라이언트 간에 세션키를 교환함

여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며, 데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어짐

 

이 세션키를 클라이언트와 서버가 교환하는 과정에서 비대칭키가 사용됨

 

즉, 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용되고,

이후에는 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키가 사용되는 것

 

 

 

'CS > 네트워크' 카테고리의 다른 글

흐름제어 & 혼잡제어  (0) 2022.08.09
TCP 3 & 4 way handshake  (0) 2022.08.09
OSI 7계층  (0) 2022.08.09
대칭키 공개키  (0) 2022.07.23
UDP (User Datagram Protocol)  (0) 2022.06.25

흐름제어

송신 측과 수신 측의 TCP 버퍼 크기 차이로 인해 생기는 데이터 처리 속도 차이를 해결하기 위한 기법

 

* TCP 버퍼란?

송신 측은 버퍼에 TCP 세그먼트를 보관한 후 순차적으로 전송하고, 수신 측은 도착한 TCP 세그먼트를 애플리케이션이 읽을 때까지 버퍼에 보관

 

 

수신 측이 송신 측보다 데이터 처리 속도가 빠르다면 문제가 없지만,
송신 측의 속도가 빠를 경우에는 수신 측에서 제한한 저장 용량을 초과한 이후에 도착하는 패킷은 손실될 수 있음. 

만약 손실된다면 불필요한 추가 패킷 전송이 발생하게 됨

 

 

 

 

 

 

◆ 흐름 제어 기법

 

1) Stop and Wait

  • 매번 전송한 패킷에 대해 확인 응답을 받아야만, 그 다음 패킷을 전송하는 방법
  • 패킷을 하나씩 보내기 때문에 비효율적인 방법

 

 

 

 

2) Sliding Window

  • 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK) 없이 패킷을 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 제어 기법
  • 윈도우에 포함된 패킷을 계속 전송하고, 수신 측으로부터 확인 응답이 오면 윈도우를 옆으로 옮겨 다음 패킷들을 전송함

 

 

 

 

 

 

 

 


혼잡제어

송신 측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법

 

 

데이터의 양이 라우터가 처리할 수 있는 양을 초과하면 초과된 데이터는 라우터가 처리하지 못함
이때 송신 측에서는 라우터가 처리하지 못한 데이터를 손실 데이터로 간주하고 계속 재전송하여 네트워크를 혼잡하게 함

이런 상황은 송신 측의 전송 속도를 적절히 조절하여 예방 가능한데, 이를 혼잡제어라고 함

 

 

 

 

 

◆ 혼잡 제어 기법

 

1) AIMD (Additive Increase/Multicative Decrease)

  • 처음에 패킷을 하나씩 보내고 문제 없이 도착하면 윈도우의 크기를 1씩 증가시켜가며 전송 (=Additive Increase)
  • 만약 전송에 실패한다면, 윈도우 크기를 반으로 줄임 (=Multicative Decrease)
  • 윈도우 크기를 너무 조금씩 늘리기 때문에 네트워크의 모든 대역을 활용하여 제대로 된 속도로 통신하기까지 시간이 오래 걸린다는 단점이 존재

 

 

 

2) Slow Start (느린 시작)

  • 윈도우의 크기를 1, 2, 4, 8, ... 과 같이 지수적으로 증가시키다가 혼잡이 감지되면 윈도우 크기를 1로 줄이는 방식
  • 보낸 데이터의 ACK가 도착할 때마다 윈도우 크기를 증가시키기 때문에, 처음에는 윈도우 크기가 조금 느리게 증가하더라도 시간이 갈수록 점점 빠르게 증가한다는 장점이 존재

 

 

 

3) 빠른 재전송 (Fast Retransmit)

  • 수신 측에서 순서대로 도착한 마지막 패킷의 다음 순번을 ACK 패킷에 실어서 보냄
  • 이러한 ACK를 중복해서 3개 받으면 재전송이 이루어짐
  • 송신 측은 자신이 설정한 타임 아웃 시간이 지나지 않았어도 바로 해당 패킷을 재전송할 수 있기 때문에 보다 빠른 재전송률을 유지할 수 있음

 

 

 

4) 빠른 회복 (Fast Recovery)

  • 혼잡한 상태가 되면 윈도우 크기를 반으로 줄이고, 선형 증가시키는 방법
  • 해당 방법을 적용하면 혼잡 상황을 한 번 겪고 나서부터는 AIMD 방식으로 동작함

 

 

 

 

 

 


결론적으로...

흐름제어는 송수신 측 사이의 패킷 수를 제어하는 기능

혼잡제어는 네트워크 내의 패킷 수를 조절하여 네트워크의 오버플로우를 방지하는 기능

 

 

 

 

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (0) 2022.08.10
TCP 3 & 4 way handshake  (0) 2022.08.09
OSI 7계층  (0) 2022.08.09
대칭키 공개키  (0) 2022.07.23
UDP (User Datagram Protocol)  (0) 2022.06.25

TCP (Transmission Control Protocol)

 

  • 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜
  • TCP는 애플리케이션에 신뢰적이고 연결지향적 서비스를 제공함
  • IP는 배달을, TCP는 패킷의 추적 및 관리를 함
  • 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 연결을 해제함
  • 흐름 제어 및 혼잡 제어 수행
  • 높은 신뢰성을 보장하지만, 속도가 느림

 

 

 

 

 

 

 

 

3 way handshake와 4 way handshake 사전 지식

포트(Port) 상태 정보

- CLOSED : 포트가 닫힌 상태

- LISTEN : 포트가 열린 상태로 연결 요청 대기 중

- SYN_RCV : SYN 요청을 받고 상대방의 응답을 기다리는 중

- ESTABLISHED : 포트 연결 상태

 

 

플래그 정보

TCP Header에는 Control Bit (플래그 비트, 6bit)가 존재하며, 각각의 bit는 'URG-ACK-PSH-RST-SYN-FIN'의 의미를 가짐

즉, 해당 위치의 BIT가 1이면 해당 패킷이 어떤 내용을 담고 있는 패킷인지를 나타냄

 

- SYN(Synchronize Sequence Number) / 000010

□ 연결 설정. Sequence Number를 랜덤으로 설정하여 세션을 연결하는 데 사용하며, 초기에 Sequence Number를 전송

 

- ACK(Acknowledgement) / 010000

□ 응답 확인. 패킷을 받았음을 의미함

 

- FIN(Finish) / 000001

□ 연결 해제. 세션 연결을 종료시킬 때 사용되며, 더 이상 전송할 데이터가 없음을 의미함

 

 

 

 

 

 

 

 


TCP 3 way handshake

  • TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정
  • 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제 데이터 전달이 시작하기 전에 한 쪽에서 다른 쪽이 준비되었음을 알 수 있도록 함
  • 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에, 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미

 

 

Step 1

  • 클라이언트는 서버에 연결을 요청하는 SYN 패킷을 보낸 후 서버의 응답을 기다리며 SYN_SENT 상태를 유지하고, 서버는 클라이언트의 요청을 받기 전엔 Wait for Client 상태를 유지함
  • 송신자가 최초로 데이터를 전송할 때는 Sequence Number를 임의의 랜덤 숫자로 지정하고, SYN 플래그 비트를 1로 설정한 세그먼트를 전송

 

Step 2

  • 서버는 클라이언트가 보낸 SYN 패킷을 받고 SYN_RECEIVED 상태가 되고 SYN+ACK를 보내 응답
  • ACK Number 필드를 Sequence Number + 1로 지정하고, SYN과 ACK 플래그 비트를 1로 설정한 세그먼트를 전송

 

Step 3

  • 서버의 응답을 받은 클라이언트는 다시 서버에 ACK 패킷으로 응답하고, 이를 서버가 받은 후부터 세션이 생성되어 연결이 완료됨

 

 

이러한 3 단계를 거치면 클라이언트와 서버 모두 데이터를 전송하고 받을 준비가 되었다는 것을 보장하여 안전한 데이터 전송이 이루어짐

 

 

 

 

 

 

 

 


TCP 4 way handshake

  • 데이터를 주고 받은 뒤 연결을 해제하는 과정

 

 

Step 1

  • 클라이언트는 연결을 종료하고자 서버에 FIN 플래그를 보내고 FIN_WAIT 상태에 들어감

 

Step 2

  • 서버는 클라이언트로부터 FIN 플래그를 받은 뒤 확인했다는 ACK 패킷을 보내고, 자신의 통신이 끝날 때까지 기다림
  • 서버는 클라이언트에게 응답을 보내고 CLOSE_WAIT 상태에 들어간 후, 아직 남은 데이터가 있다면 마저 전송을 함
  • 클라이언트에서는 서버에서 ACK를 받은 후에 서버가 남은 데이터 처리를 끝내고 FIN 패킷을 보낼 때까지 기다림

 

Step 3

  • 서버가 연결을 종료할 준비가 되면, 연결을 해제할 준비가 되었다는 FIN 플래그를 클라이언트에 전송하고, 서버는 LAST_ACK 상태가 됨

 

Step 4

  • 클라이언트는 서버에 ACK를 보내 응답하고 클라이언트의 상태는 FIN_WAIT → TIME_WAIT으로 변경
  • 클라이언트의 ACK 응답을 받은 서버는 연결을 해제함
  • 이때 클라이언트는 ACK를 보낸 이후 일정 시간 기다리게 되는데, 아직 서버에서 받지 못한 데이터가 유실되는 경우를 대비해 잉여 패킷을 기다리는 TIME_WAIT 상태를 일정 시간 유지함

 

 

서버는 ACK를 받은 이후 소켓을 닫고, TIME_WAIT 시간이 끝나면 클라이언트도 닫음

이러한 4 단계를 통해 클라이언트와 서버 간의 연결을 해제함

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (0) 2022.08.10
흐름제어 & 혼잡제어  (0) 2022.08.09
OSI 7계층  (0) 2022.08.09
대칭키 공개키  (0) 2022.07.23
UDP (User Datagram Protocol)  (0) 2022.06.25

OSI 7계층이란

 

네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작용하는 방식을 정해 놓은 것

 

 

* 7계층으로 나누는 이유

통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 해당 단계만 수정하면 되기 때문

 

 

 

 

Layer 1: 물리 계층

  • 통신 케이블을 통해 전기적 신호를 사용하여 비트 스트림을 전송하는 계층
  • 실제 장치들을 연결하기 위한 전기적 및 물리적 세부 사항을 정의함
  • 데이터를 전기적인 신호로 변환해서 주고받는 기능만 함
  • 데이터 전송 단위 - 비트(bit)

 

 

Layer 2 : 데이터 링크 계층

  • 물리적인 네트워크 사이에 Data 전송을 담당하는 계층
  • 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 정보의 전달을 수행할 수 있도록 도와줌
  • 맥 주소(Mac Address)를 가지고 통신
  • 두 장치간의 신뢰성 있는 전송을 보장하는 계층
  • 데이터 전송 단위 - 프레임(Frame)

 

 

Layer 3 : 네트워크 계층

  • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당
  • 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달하는 것이 계층의 주 역할
  • 라우팅, 흐름제어, 세그멘테이션, 오류제어 등을 수행
  • 인터넷이 가능하게 만드는 계층
  • 데이터 전송 단위 - 패킷(Packet)

 

 

Layer 4 : 전송 계층

  • 헤더(Header)에 송수신지 포트번호를 포함하여, 데이터가 올바르게 전달될 수 있도록 하는 계층
  • 패킷의 전송이 유효한지 확인, 전송 실패한 패킷을 재전송 하는 등 신뢰성 있는 통신을 보장 (보통 TCP 프로토콜을 주로 사용)
  • 데이터가 왔다면, 4계층(전송계층)에서 해당 데이터를 하나로 통합하여 5계층(세션계층)으로 전달함
  • 종단 간(end-to-end) 통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송
  • 오류 검출, 복구, 흐름 제어, 중복검사 등을 수행
  • 데이터 전송 단위 - TCP일 때 Segment, UDP일 때 Datagram

 

 

Layer 5 : 셰션 계층

  • 데이터가 통신하기 위한 논리적 연결을 담당
  • 네트워크 상의 양쪽 연결을 관리하고, 연결을 지속시켜주는 계층
  • 통신 연결이 손실되는 경우 연결 복구 시도가 가능하며, 연결 시도 중 장시간 연결이 되지 않았다면 세션 계층의 프로토콜이 연결을 닫고 다시 연결을 시작
  • TCP/IP 세션을 만들고 없애고 통신하는 사용자들을 동기화하며, 오류 복구 명령들을 일괄적으로 다뤄 통신을 하기 위한 세션을 확립, 유지, 중단하는 작업을 수행
  • 세션 계층의 중요한 기능인 동기화
    • 전이중 통신 (Full Duplex) : 두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 통신 방식
    • 반이중 통신 (Half Duplex) : 한쪽이 송신하는 동안 다른 쪽에서 수신하는 통신 방식으로, 전송 방향을 교체
  • 데이터 전송 단위 - 메시지(message)

 

 

Layer 6 : 표현 계층

  • 응용 계층으로부터 받은 데이터를 하위 계층인 세션 계층에 보내기 전, 통신에 적당한 형태로 변환
  • 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 역할을 수행
  • 코드 변환, 데이터 압축 및 암호화 등의 기능 수행
  • 데이터 전송 단위 - 메시지(message)

 

 

Layer 7 : 응용 계층

  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행 → 최상위 계층으로 사용자에게 직접적으로 보이는 부분
  • 응용 프로세스 간의 정보 교환, 전자 메일, 파일 전송 등의 서비스를 제공
  • ex) 웹 브라우저 Chrome, Firefox 등 / 응용 프로그램인 Skype, Office 등
  • 데이터 전송 단위 - 메시지(message)

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (0) 2022.08.10
흐름제어 & 혼잡제어  (0) 2022.08.09
TCP 3 & 4 way handshake  (0) 2022.08.09
대칭키 공개키  (0) 2022.07.23
UDP (User Datagram Protocol)  (0) 2022.06.25

대칭키 암호 알고리즘 (symmetric-key algorithm)

 

- 암복호화에 사용하는 키가 동일한 암호화 방식

- 공개키 암호화 방식에 비해 속도가 빠르다는 장점이 있지만, 키를 교환해야한다는 문제 (키 배송 문제)가 발생

- 키를 교환하는 중 키가 탈취될 수 있는 문제도 있고 사람이 증가할수록 전부 따로따로 키 교환을 해야하기 때문에 관리해야 할 키가 방대하게 많아짐

- 키 배송 문제를 해결하기 위한 방법으로 키의 사전 공유에 의한 해결, 키 배포센터에 의한 해결, Diffie-Hellman 키 교환에 의한 해결, 공개키 암호에 의한 해결 등이 있음

 

 

 

 

 

 

 

공개키 암호 알고리즘 (public-key cryptography)

 

- 암복호화에 사용하는 키가 서로 다르며 따라서 비대칭키 암호화라고도 함

- 대칭키의 키교환 문제를 해결하기 위해 등장

- 송수신자 모두 한쌍의 키(개인키, 공개키)를 가짐

- 이름 그대로 키가 공개되어있기 때문에 키를 교환할 필요가 없어지며 공개키 모든 사람이 접근 가능한 키이고 개인키 각 사용자만이 가지고 있는 키

- A는 B의 공개키로 암호화한 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게 되는 것

- 중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성을 제공하며 개인키를 가지고있는 수신자만이 암호화된 데이터를 복호화할 수 있으므로 일종의 인증기능도 제공한다는 장점 존재 (기밀성/인증/부인방지 기능을 제공)

- 속도가 느리다는 단점이 존재

 

  • B 공개키/개인키 쌍 생성
  • 공개키 공개(등록), 개인키는 본인이 소유
  • A가 B의 공개키를 받아옴
  • A가 B의 공개키를 사용해 데이터를 암호화
  • 암호화된 데이터를 B에게 전송
  • B는 암호화된 데이터를 B의 개인키로 복호화 (개인키는 B만 가지고 있기 때문에 B만 볼 수 있음)

 

 

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (0) 2022.08.10
흐름제어 & 혼잡제어  (0) 2022.08.09
TCP 3 & 4 way handshake  (0) 2022.08.09
OSI 7계층  (0) 2022.08.09
UDP (User Datagram Protocol)  (0) 2022.06.25

UDP란?

 

- User Datagram Protocol의 약자

 

- TCP/IP 5계층에서 Transport Layer(전송계층)의 프로토콜

 

- TCP와는 다르게 데이터를 패킷으로 나누고 반대편에서 재조립하는 과정을 거치지 않으며, 수신지에서 제대로 받던 받지 않던 상관 안하고 데이터를 보내기만 함

 

- 흐름제어, 오류제어, 또는 손상된 세그먼트의 수신에 대한 재전송 하지 않음

 

- 단순 오류탐지만을 함 → 흐름제어나 오류제어 등의 기능은 어플리케이션에서 처리해주어야 함

 

- TCP 보다 신뢰성이 떨어지지만(비신뢰성), 전송 속도가 일반적으로 빠른 프로토콜 → 소량의 데이터 전송 시에는 UDP를 이용하는 것이 효율적

 

- Connectionless → 비연결성 (3 way-handshake X)

 

 

 

 

 

 

 

UDP 구조

- Source Port : 해당 패킷을 만든 송신자의 어플리케이션 포트번호
- Destination Port : 해당 패킷을 수신할 어플리케이션 포트번호
- Length : UDP헤더와 데이터를 포함한 전체 길이를 Byte 단위로 표시
- 데이터가 전송 중 손상되지 않고 원본과 동일한지 여부를 확인하는 기능을 제공 (오류탐지)

 

 

 

 

 

UDP를 사용하는 이유

- UDP의 결정적인 장점은 데이터의 신속성 (데이터의 처리가 TCP보다 빠름)
- 주로 실시간 방송과 온라인 게임에서 사용

 

신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고, 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용

 

 

 

* (참고) TCP와 UDP의 차이를 잘 설명해준 블로그
https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

 

 

 

 

UDP 기반의 프로토콜


* TFTP (Trivial File Transfer Protocol)


  - FTP(File Transfer Protocol)와 마찬가지로 파일을 전송하기 위한 프로토콜

  - FTP보다 더 단순한 방식으로 파일 전송

 

 

* SNMP (Simple Network Management Protocol)


  - 네트워크 장비를 관리 감시하기 위한 목적

  - 네트워크 관리자가 네트워크 성능을 관리하고, 네트워크 문제점을 찾아 수정하는데 도움을 줌

 

 

* DHCP (Dynamic Host Configuration Protocol) 


  - 동적으로 IP주소를 할당해주는 프로토콜

 

 

* NFS (Network File System)

 

  - 네트워크 상에서 파일시스템을 공유하도록 설계된 파일 시스템

 

 

* DNS (Domain Name System) 


  - 호스트의 도메인 이름(사람이 이해하기 쉬운)  ↔  네트워크 주소 (컴퓨터가 이해하기 쉬운 IP주소)

 

 

* RIP (Routing Information Protocol)


  - 동적 라우팅 정보 프로토콜 (LAN 구간에서 사용되는 프로토콜)

 

라우팅 프로토콜이란, 라우터가 패킷을 목적지까지 전달하기 위해 인접한 라우터 사이에서 경로 정보를 작성하고 제어하는 프로토콜을 의미한다.

 

정적 라우팅은 최종 목적지까지 경로를 직접 설정하여 통신을 한다고 하면,

동적 라우팅은 라우터에 경로를 설정하는 것이 아닌 각각의 라우터가 자신의 정보를 다른 라우터에게 "광고"하도록 하여 서로 자신의 정보를 교환하며 직접적인 경로 설정 없이 목적지까지 도달할 수 있도록 한다.

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (0) 2022.08.10
흐름제어 & 혼잡제어  (0) 2022.08.09
TCP 3 & 4 way handshake  (0) 2022.08.09
OSI 7계층  (0) 2022.08.09
대칭키 공개키  (0) 2022.07.23

+ Recent posts