Skip to main content
2025-08-11

6. Network

TL;DR

이 글은 2025년도 봄학기 KAIST 전산학부 대학원 면접을 준비하며, 면접 참고자료(Network)에 대한 대답을 정리한 글입니다.

문제에 대한 정답이 아니며, 제가 공부하며 생각한 바들을 정리한 것입니다.

후에 같은 목표로 면접을 준비하는 학우분들께 도움이 되기를 바랍니다.

이 풀이노트는 질문만 본 상태에서 답변한 내용에 대한 채점, 그리고 이 면접을 준비하며 이전에 한번 LLM과 함께 작성해본 답안이 이어져 있습니다.

문제

OSI 7계층에 대해 설명하시오

네트워크 스택을 7개 계층으로 역할을 분리한 것입니다. 물리 계층, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 이루어져 있습니다. tcp/ip의 물리 계층은 layer 1 ~ 2, 애플리케이션 계층은 5~7에 대응됩니다.

네트워크 통신을 위한 표준 모델로, 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 앱 7개의 계층으로 구성되어 있습니다. 물리 계층은 전기적 신호를 전송하는 계층으로, 케이블, 허브, 리피터 등이 포함됩니다. 데이터 링크 계층은 물리 계층 위에서 데이터 프레임을 전송하는 계층으로, MAC 주소를 사용하여 장치 간의 통신을 관리합니다. 에러 검출과 흐름 제어도 이 계층에서 수행됩니다. 네트워크 계층은 패킷을 목적지로 라우팅하는 계층으로, 대표적으로 IP 프로토콜이 사용됩니다. 전송 계층은 데이터의 전송을 관리하는 계층으로, TCP와 UDP 프로토콜이 사용됩니다. TCP는 신뢰성 있는 연결을 제공하고, UDP는 비연결형 서비스를 제공합니다. 세션 계층은 통신 세션을 관리하는 계층으로, 세션의 설정, 유지, 종료를 담당합니다. 표현 계층은 데이터의 표현 형식을 정의하는 계층으로, 데이터의 인코딩, 압축, 암호화 등을 수행합니다 앱 계층은 사용자와 네트워크 간의 인터페이스를 제공하는 계층으로, HTTP, FTP, SMTP 등의 프로토콜이 사용됩니다.


아래 계층부터 설명하면 편할 것 같습니다. 데이터링크 계층은 두 하드웨어 간의 연결을 관리합니다. 스위치에서 라우터로 잘 패킷이 넘어갔는지 확인합니다. 네트워크 계층은 호스트 간의 연결을 관리합니다. 라우터는 적절한 호스트에게 패킷을 전달하려고 합니다. 전송 계층은 호스트가 어떤 프로세스에게 패킷을 전달할지 결정하는 계층입니다 포트번호를 동해 프로세스를 구분합니다.

데이터 링크 계층은 하드웨어 주소(MAC 주소)를 사용하여 동일 네트워크 내의 장치 간의 통신을 관리합니다. 예를들어 실제로 연결된 장치 간의 데이터 전송을 담당합니다. 네트워크 계층은 IP 주소를 사용하여 목적지까지의 경로를 결정하고, 패킷을 라우팅합니다. 데이터 링크 계층은 다음 하드웨어로 패킷을 전달하는 책임이 있고, 네트워크 계층은 패킷이 목적지에 도달할 수 있도록 경로를 결정합니다. 전송 계층은 프로세스 간의 통신을 관리하며, 신뢰성 있는 데이터 전송을 보장합니다. 흐름제어, 오류제어 등의 기능을 제공합니다.


HTTP, DNS, Video Stream

HTTP/2에서 persistent connection이란?

HTTP/2에서 동일 호스트 간의 tcp 연결을 반복해서 수행하기 않기 위해 연결을 유지하는 것입니다. HTTP1.1에 도입되어 HTTP2부터 기본값으로 이용되고 있습니다.

HTTP2는 TCP 상에서 이용되고, 1번의 요청, 응답 이후 연결이 종료됩니다. Persistent connection은 HTTP/1.1에서 도입된 기능으로, 하나의 TCP 연결을 통해 여러 개의 HTTP 요청과 응답을 처리할 수 있는 기능입니다. 즉, 클라이언트와 서버 간의 연결을 유지하여, 매번 새로운 연결을 생성하지 않고도 여러 요청을 처리할 수 있습니다. 이로 인해 연결 설정과 해제에 소요되는 시간을 줄이고, 성능을 향상시킬 수 있습니다.

HTTP1.1에서는 기본적으로 persistent connection을 지원하지만, HTTP2에서는 이를 더욱 개선하여 멀티플렉싱(multiplexing) 기능을 추가했습니다. 멀티플렉싱은 하나의 연결에서 여러 개의 요청과 응답을 동시에 처리할 수 있는 기능으로, HTTP2의 주요 특징 중 하나입니다. 이를 통해 HTTP2는 성능을 더욱 향상시킬 수 있습니다.


HTTP/3가 HTTP/2에 비해 바뀐 점은?

HTTP3는 전송계층에 tcp 대신 udp를 사용합니다. 따라서 흐름제어, 순서 보장 등 tcp에서 제공하는 기능을 프로세스별로 최적화하여 구현할 수 있습니다. 보통 QUIC 라이브러리를 이용하는것으로 알고 있습니다.

가장 큰 차이는 전송 프로토콜이 TCP에서 UDP(QUIC)로 변경되었다는 점입니다. QUIC(Quick UDP Internet Connections)는 UDP를 기반으로 하여, 연결 설정 시간을 단축시키고, 패킷 손실에 대한 복구를 개선한 프로토콜입니다. HTTP/3는 QUIC를 사용하여 다음과 같은 개선점을 제공합니다:

  1. 연결 설정 시간 단축: QUIC는 0-RTT(Zero Round Trip Time) 연결 설정을 지원하여, 클라이언트와 서버 간의 연결 설정 시간을 단축시킵니다.
  2. 패킷 손실 복구: QUIC는 패킷 손실에 대한 복구를 개선하여, 데이터 전송의 신뢰성을 높입니다.
  3. 멀티플렉싱: HTTP/3는 멀티플렉싱을 지원하여, 하나의 연결에서 여러 개의 요청과 응답을 동시에 처리할 수 있습니다. 이는 HTTP/2의 멀티플렉싱 기능을 더욱 개선한 것입니다.
  4. 헤더 압축: HTTP/3는 HPACK 헤더 압축 방식을 사용하여, HTTP 헤더의 크기를 줄이고, 데이터 전송의 효율성을 높입니다.
  5. 보안: QUIC는 TLS 1.3을 기본적으로 사용하여, 보안성을 강화합니다.

DNS에서 주소에 대응되는 entry는 어떻게 찾아지는가?

먼저 루트 도메인 서버에서 도메인 주소의 뒷부분부터 차례대로 알맞은 DNS 서버를 찾아가며 entry를 검색하빈다.

DNS(도메인 네임 시스템)는 도메인 이름을 IP 주소로 변환하는 시스템입니다. DNS는 계층 구조로 구성되어 있으며, 도메인 이름을 해결하기 위해 다음과 같은 과정을 거칩니다:

  1. 도메인 이름 해석 요청: 클라이언트가 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청을 보냅니다.
  2. 로컬 DNS 서버: 클라이언트의 로컬 DNS 서버가 요청을 처리합니다. 로컬 DNS 서버는 캐시된 정보를 사용하여 빠르게 응답할 수 있습니다.
  3. 루트 DNS 서버: 로컬 DNS 서버가 도메인 이름을 해결할 수 없는 경우, 루트 DNS 서버에 요청을 보냅니다. 루트 DNS 서버는 최상위 도메인(TLD) 서버의 IP 주소를 반환합니다.
  4. TLD DNS 서버: 루트 DNS 서버가 반환한 TLD 서버에 요청을 보냅니다. TLD 서버는 도메인 이름의 최상위 부분(예: .com, .org 등)에 대한 정보를 가지고 있습니다.
  5. 권한 있는 DNS 서버: TLD 서버가 반환한 권한 있는 DNS 서버에 요청을 보냅니다. 권한 있는 DNS 서버는 도메인 이름에 대한 최종적인 IP 주소 정보를 가지고 있습니다.
  6. IP 주소 반환: 권한 있는 DNS 서버가 도메인 이름에 대한 IP 주소를 반환합니다. 이 IP 주소는 클라이언트의 로컬 DNS 서버로 전달되고, 최종적으로 클라이언트에게 전달됩니다.

Video streaming에 쓰이는 프로토콜 중 하나를 설명하시오.

수업떄 패킷을 분석할 땐 QUIC를 썼던 기억이 납니다. 다른 프로토콜은 잘 모르겠습니다.

앱 계층에서의 프로토콜은 잘 모르겠지만, 전송 계층에선 주로 UDP 프로토콜이 사용됩니다. UDP는 비연결형 프로토콜로, 데이터그램을 전송할 때 연결 설정이 필요하지 않습니다. 이로 인해 데이터 전송 속도가 빠르고, 지연 시간이 짧아 실시간 스트리밍에 적합합니다. 하지만 UDP는 신뢰성 있는 데이터 전송을 보장하지 않기 때문에, 패킷 손실이 발생할 수 있습니다. 이러한 패킷 손실은 비디오 스트리밍의 품질에 영향을 미칠 수 있습니다.


TCP

TCP와 같이 protocol을 reliable하게 설계 하려면 무엇이 필요한가?

오류 검증, 혼잡 제어, 흐름 제어가 필요합니다.

신뢰성 있는 프로토콜을 설계하기 위해서는 다음과 같은 요소가 필요합니다:

  1. 연결 설정: 클라이언트와 서버 간의 연결을 설정하는 과정이 필요합니다. TCP는 3-way handshake를 사용하여 연결을 설정합니다
  2. 데이터 전송: 데이터를 전송할 때, 데이터의 순서를 보장하고, 중복된 데이터가 전송되지 않도록 해야 합니다. TCP는 시퀀스 번호를 사용하여 데이터의 순서를 보장합니다.
  3. 오류 검출 및 복구: 데이터 전송 중 오류가 발생할 수 있으므로, 오류를 검출하고 복구하는 메커니즘이 필요합니다. TCP는 체크섬을 사용하여 데이터의 오류를 검출하고, 재전송을 통해 오류를 복구합니다.
  4. 흐름 제어: 데이터 전송 속도를 조절하여, 수신 측이 데이터를 처리할 수 있는 속도로 전송해야 합니다. TCP는 슬라이딩 윈도우 기법을 사용하여 흐름 제어를 구현합니다.
  5. 혼잡 제어: 네트워크의 혼잡 상태를 감지하고, 데이터 전송 속도를 조절하여 네트워크의 혼잡을 완화해야 합니다. TCP는 혼잡 제어 알고리즘(예: AIMD, Slow Start 등)을 사용하여 혼잡 제어를 구현합니다.
  6. 연결 종료: 데이터 전송이 완료되면 연결을 종료하는 과정이 필요합니다. TCP는 4-way handshake를 사용하여 연결을 종료합니다. 이러한 요소들을 통해 TCP는 신뢰성 있는 데이터 전송을 보장합니다.

Flow control이란 무엇인가? Congestion control과 flow control의 차이점은?

흐름 제어란 상대방이 수용 가능한 속도로 전송을 수행하는 기술입니다. 수신 측에서 sliding window 기법을 통해 조절할 수 있습니다. 혼잡 제어는 송신 츶에서 네트워크 혼잡을 감지하여 대역폭을 조절하는 기술입니다. 즉 조절의 주체에서 차이가 있스빈다.

흐름 제어(Flow Control)는 송신 측과 수신 측 간의 데이터 전송 속도를 조절하여, 수신 측이 데이터를 처리할 수 있는 속도로 전송하는 메커니즘입니다. 즉, 수신 측이 버퍼를 초과하여 데이터를 처리하지 못하는 상황을 방지하기 위해 송신 측의 데이터 전송 속도를 조절합니다. TCP에서는 슬라이딩 윈도우 기법을 사용하여 흐름 제어를 구현합니다. 슬라이딩 윈도우는 송신 측이 보낼 수 있는 데이터의 양을 제한하고, 수신 측이 처리할 수 있는 데이터의 양을 조절합니다.


TCP와 UDP의 차이점은?

reliablity에서 차이가 있습니다. tcp는 연결 설정/종료, 오류 검출, 흐름 제어, 혼잡 제어 등을 통해 안정적인 연결을 제공하빈다. 이에반해 UDP는 데이터그램을 전송 및 오류 검출만 하여, 간단함과 낮는 레이턴시에 장점이 있습니다.

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 전송 계층에서 사용되는 두 가지 주요 프로토콜입니다. 이들의 차이점은 다음과 같습니다:

  1. 연결 지향성: TCP는 연결 지향 프로토콜로, 데이터 전송 전에 클라이언트와 서버 간의 연결을 설정해야 합니다. 반면 UDP는 비연결형 프로토콜로, 연결 설정 없이 데이터를 전송할 수 있습니다.
  2. 신뢰성: TCP는 신뢰성 있는 데이터 전송을 보장합니다. 데이터의 순서를 보장하고, 오류 검출 및 복구 메커즘을 제공합니다. 반면 UDP는 신뢰성 있는 데이터 전송을 보장하지 않습니다. 데이터의 순서가 보장되지 않으며, 오류 검출 및 복구 메커니즘이 없습니다.

Congestion이 발생했다는 것을 어떻게 알 수 있는가?

혼잡은 패킷 로스를 통해 감지할 수 있습니다. 전송자 입장에서 ACK이 제대로 오지 않는것을 통해 감지할 것 같습니다.

네트워크 혼잡(Congestion)은 네트워크의 대역폭이 초과되어 데이터 전송 속도가 느려지거나 패킷 손실이 발생하는 상태를 의미합니다. TCP에서는 다음과 같은 방법으로 네트워크 혼잡을 감지할 수 있습니다:

  1. 패킷 손실: TCP는 패킷 손실을 감지하여 네트워크 혼잡을 판단합니다. 패킷 손실은 ACK(Acknowledgment) 패킷이 수신되지 않을 때 발생합니다.
  2. RTT(Round Trip Time): TCP는 RTT를 측정하여 네트워크 혼잡을 감지합니다. RTT가 증가하면 네트워크 혼잡이 발생했을 가능성이 높습니다.
  3. 중복 ACK: TCP는 중복 ACK 패킷을 수신하면 네트워크 혼잡을 감지합니다. 중복 ACK는 송신 측에서 패킷이 손실되었음을 나타내며, 이는 네트워크 혼잡의 징후일 수 있습니다.

3-way handshaking이란?

tcp에서 연결을 설정하는 매커니즘입니다. 먼저 연결 요청이 오고, SYN이 같이 옵니다. 서버는 이에대해 수락하고 SYN-ACK을 보냅니다. 클라이언트도 다시 ACK을 보내면 연결이 성립합니다.

TCP 연결을 설정하기 위한 과정으로, 클라이언트와 서버 간의 연결을 설정하는 데 사용됩니다. 3-way handshaking은 다음과 같은 단계로 이루어집니다:

  1. SYN: 클라이언트가 서버에 연결 요청을 보내는 SYN(Synchronize) 패킷을 전송합니다. 이 패킷은 클라이언트의 초기 시퀀스 번호를 포함합니다.
  2. SYN-ACK: 서버가 클라이언트의 SYN 패킷을 수신하고, 연결 요청을 승인하는 SYN-ACK(Synchronize-Acknowledge) 패킷을 전송합니다. 이 패킷은 서버의 초기 시퀀스 번호와 클라이언트의 초기 시퀀스 번호에 대한 ACK(Acknowledgment)를 포함합니다.
  3. ACK: 클라이언트가 서버의 SYN-ACK 패킷을 수신하고, 연결을 승인하는 ACK(Acknowledge) 패킷을 전송합니다. 이 패킷은 서버의 초기 시퀀스 번호에 대한 ACK를 포함합니다.

TCP congestion control은 어떤 원리로 동작하는가?

TCP 혼잡 제어는 AIMD로 동작하빈다. 대역폭을 선형적으로 늘리다가, 패킷 로스가 감지되면 1/n로 감소시킵니다. 이를 반복하면 모든 연결의 대역폭이 일정 지점으로 수렴하게 됩니다.


TCP는 어떻게 발전하였는가?

처음엔 군용 목적으로 개발되었고, 현재는 TLS가 추가되어 안전한 네트워크 통신을 위한 기본 요소가 되었스빈다. SYN flood 공격에 대한 방비도 발전의 일종인 것 같습니다. 다양한 하드웨어 오프로딩도 재밌습니다.


Generalized forwarding에 대해 설명하라.

전통적인 포워딩은 iptable의 longest prefix matching을 통해 라우팅을 진행합니다. 현대에선 더 다양한 요소, (포트번호, dst와 src의 관계)들을 이용하여 라우팅을 하려고 하고, 이를 Generalized forwarding이라고 합니다. 수업 과제에선 openflow를 통해 이를 구현했던 것 같습니다.

기본적으로 포워딩은 ip 주소가 가장 길게 매치되는 라우팅 테이블을 찾아서 패킷을 전달하는 것입니다. 하지만 Generalized forwarding은 단순히 IP 주소 매칭을 넘어서, 다양한 프로토콜과 포워딩 메커니즘을 지원하는 확장된 포워딩 방식을 의미합니다. openflow 프로토콜을 사용하여, 네트워크 장치가 다양한 포워딩 규칙을 정의하고 적용할 수 있도록 합니다. 즉, Generalized forwarding은 단순한 IP 주소 매칭을 넘어서, 다양한 프로토콜과 포워딩 메커니즘을 지원하는 확장된 포워딩 방식을 의미합니다.


Internet routing은 어떻게 일어나는가?

출발지에서 목적지까지 적절한 라우터에게 패킷을 전달하는 방식으로 이루어집니다. 세상에 많은 AS와 각 AS가 관리하는 ip 대역이 있고, 이를 바탕으로 어떤 AS로 패킷을 전달해야 할지 결정할 수 있습니다.

라우터를 패킷을 받으면 어떤 포트로 전달할지 결정하는데, 이를 위해 라우팅 테이블을 사용합니다. 라우팅 테이블은 목적지 IP 주소와 해당 IP 주소로 패킷을 전달할 포트 정보를 포함합니다. 라우터는 패킷의 목적지 IP 주소를 확인하고, 라우팅 테이블에서 해당 IP 주소와 가장 길게 매치되는 항목을 찾아 패킷을 해당 포트로 전달합니다. 이 과정에서 라우터는 패킷의 TTL(Time To Live) 값을 감소시키고, TTL 값이 0이 되면 패킷을 폐기합니다.


BGP가 어떻게 작동하는지 설명하여라.

BGP는 in out 두가지로 나눌 수 있습니다. 둘 다 자신이 라우팅할 수 있는 ip를 홍보하며, 홍보받은 라우터들은 이를 바탕으로 다음으로 전달알 라우터를 결정합니다.

BGP는 인터넷에서 AS간에 라우팅 정보를 교환하는 프로토콜입니다. AS간의 대표적인 관계로 peer (동등한 관계)와 customer-provider 관계가 있습니다. BGP는 각 AS가 자신의 라우팅 정보를 광고하고, 다른 AS의 라우팅 정보를 수신하여 라우팅 테이블을 업데이트합니다.

같은 as node 내에선 iBGP (Internal BGP)를 사용하여 라우팅 정보를 교환하고, 다른 AS와는 eBGP(External BGP)를 사용하여 라우팅 정보를 교환합니다. iBGP는 일반적으로 최단 경로를 선택하는 데 사용되며,eBGP는 AS 간의 경로 선택을 위해 사용됩니다.

또한 Hot Potato Routing과 같은 기법을 사용하여, BGP는 경로 선택을 최적화합니다. Hot Potato Routing은 패킷을 가능한 한 빨리 다른 AS로 전달하기 위해, 가장 짧은 경로를 선택하는 기법입니다.


CSMA/CD란?

이는 이더넷에서 주로 이용하는 충돌 방지 프로토콜입니다 통신을 시작하기 전 버스 내에서의 충돌을 먼저 감지해 보고, 사용중인 기기가 없다면 통신을 시도합니다. 만약 충돌이 있다면, 백오프 시간만큼 기다린 뒤 다시 충돌을 감지합니다.

이더넷에서 충돌을 감지하기 위한 프로토콜로, Carrier Sense Multiple Access with Collision Detection의 약자입니다. 버스 내의 장치가 전송을 하기 전에 충돌이 있는지 확인하고, 충돌이 있다면 랜덤한 시간 동안 대기한 후 다시 전송을 시도합니다.


MAC address란? IP address가 MAC address에 비해 갖는 장점은?

맥 주소는 네트워크 기기에 고유하게 할당된 주소값입니다. IP주소는 AS별로 대역폭을 나누어 할당되어 있는 계층적 구조인 반면, 맥주소는 이러한 계층적 구조가 없어 동적으로 할당하고 해제하기 어렵습니다. IP는 이러한 할당이 쉽고 로컬 네트워크를 위해 보장된 대역이 있어서 로컬에서 동적 할당이 쉽습니다.


Wireless network에서는 왜 Collision avoidance를 채택하는가? 어떻게 하면 효율성을 증가시킬 수 있는가?

무선에선 이더넷처럼 Collision Detection이 안되어서 CA를 선택합니다. 그래서 일단 통신을 하다가 충돌이 감지된다면 Random backoff를 이용하여 이 충돌을 확률적으로 최소화합니다.

무선 네트워크는 이더넷과 달리 충돌 감지가 어렵습니다. 따라서 충돌 회피 기법을 이용합니다. 충돌 회피 기법은 다음과 같은 방법으로 효율성을 증가시킬 수 있습니다:

  1. CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance): 무선 네트워크에서 사용되는 프로토콜로, 전송을 시작하기 전에 채널을 감지하고, 채널이 비어 있을 때만 전송을 시작합니다.
  2. RTS/CTS (Request to Send / Clear to Send): 전송을 시작하기 전에 RTS 패킷을 보내고, 수신 측에서 CTS 패킷을 보내어 전송을 허용합니다. 이를 통해 충돌을 방지할 수 있습니다
  3. 백오프 알고리즘: 충돌이 발생했을 때, 랜덤한 시간 동안 대기한 후 다시 전송을 시도합니다. 이를 통해 충돌 확률을 줄일 수 있습니다.
  4. 채널 분할: 주파수 대역을 여러 개의 채널로 나누어, 각 채널에서 독립적으로 전송을 수행합니다. 이를 통해 충돌을 줄이고, 네트워크의 효율성을 증가시킬 수 있습니다.
  5. 다중 접속 기술: OFDM(Orthogonal Frequency Division Multiplexing)과 같은 다중 접속 기술을 사용하여, 여러 사용자가 동시에 데이터를 전송할 수 있도록 합니다. 이를 통해 네트워크의 효율성을 증가시킬 수 있습니다.

802.11 프로토콜의 특징을 설명하여라.

보통 wifi와 혼용하여 부르는 프로토콜로 알고 있습니다. SCMA/CA를 통해 충돌을 회피하고, 버전이 올라갈수록 다양한 대역폭을 이용하여 그 속도를 올리고 있습니다.

wifi로 흔히 불리는 802.11 프로토콜은 무선 LAN(WLAN)에서 사용되는 표준 프로토콜입니다.


Security in Network

Network security의 4개 구성요소는 무엇인가?

보안의 3대요소인 CIA와 비슷하지 않을까요..?

  1. access control
  2. Confidentiality & Integrity
  3. Availability
  4. Threat Detection & Response

TLS에 대해 설명하여라

전송계층 보안은 confidentaility를 보장하기 위한 암호화 기법입니다. 4-way handwhake에서 대칭키를 교환하고 이를 바탕으로 패킷을 암호화하여 주고받아 기밀성을 지킵니다.

  1. 암호화: TLS는 데이터를 암호화하여, 네트워크을 통해 전송되는 데이터의 기밀성을 보장합니다. 이를 통해 중간에서 데이터를 가로채더라도 내용을 알 수 없습니다.
  2. 무결성: TLS는 데이터의 무결성을 보장합니다. 즉, 데이터가 전송 중에 변경되지 않았음을 확인할 수 있습니다. 이를 위해 해시 함수를 사용하여 데이터의 무결성을 검증합니다.
  3. 인증: TLS는 클라이언트와 서버 간의 인증을 제공합니다. 이를 통해 클라이언트는 서버가 신뢰할 수 있는지 확인할 수 있습니다. TLS는 디지털 인증서를 사용하여 서버의 신원을 검증합니다
  4. 세션 재개: TLS는 세션 재개 기능을 제공하여, 이전에 설정된 TLS 세션을 재사용할 수 있습니다. 이를 통해 연결 설정 시간을 단축시킬 수 있습니다.
  5. 핸드쉐이크 프로토콜: TLS는 핸드쉐이크 프로토콜을 사용하여 클라이언트와 서버 간의 연결을 설정합니다. 핸드쉐이크 과정에서 암호화 알고리즘, 키 교환 방식, 인증서 등을 협상합니다.
  6. 버전 관리: TLS는 다양한 버전을 지원하여, 최신 보안 기능을 제공하고, 이전 버전과의 호환성을 유지합니다. TLS는 HTTPS(HTTP Secure)와 같은 애플리케이션 계층 프로토콜에서 널리 사용되며, 웹 브라우저와 서버 간의 보안 통신을 제공합니다.

Network에서 checksum을 위해 사용하는 hash function과 security에서 data integrity를 위해 사용하는 hash function이 서로 interchangeable한가?

그렇지 않습니다. 네트워크의 저계층에서 쓰이는 해쉬는 검증 속도가 중요하고 오류 검출을 위해 이용합니다. 따라서 일부 충돌을 감수하더라도 속도를 챙겨야 합니다. 하지만 보안에서의 hash는 속도가 느리더라고 충돌 면역을 챙기는 것이 매우 중요합니다.