CS/Network 11

[Network] 웹페이지 요청에 대한 처리

갑자기 급 궁금해져서 전공책을 뒤적거려 봤다. (나의 마지막 발악이랄까) 그림 6.32는 학생 Bob이 학교의 이더넷 스위치에 랩톱을 연결하고 웹 페이지(www.google.com)를 다운로드하는 것을 보여준다. 💡 이렇게 단순한 요청을 처리하는 데 많은 것들이 "아래에서" 진행되고 있다! ✔️ 시작하기: DHCP, UDP, IP 그리고 이더넷 그림 6.32처럼 Bob은 랩톱을 켠 후, 학교 이더넷 스위치(학교 라우터에 연결되어 있음)에 연결되어 있는 이더넷 케이블에 연결한다. (이 예제에서 학교 라우터는 ISP com-cast.net에 연결되어 있고, comcast.net은 이 학교에 DNS 서비스를 제공하며, DNS 서버는 학교 네트워크가 아닌 콤캐스트(Comcast) 네트워크에 있다.) (DHCP ..

CS/Network 2023.11.08

Blocking I/O & Non-Blocking I/O

✔️ I/O가 성능에 미치는 영향 ❓ I/O란? 데이터의 입력(Input)과 출력(Output)을 함께 일컫는 말이다. ※ 일반적으로 I/O라고 하면, 파일 I/O만 생각하는 경우가 있는데, 어떤 디바이스를 통해 입력과 출력이 이뤄지는 작업을 모두 I/O라고 합니다. 네트워크를 통해 다른 서버로 데이터를 전송하거나, 다른 서버로부터 데이터를 전송받는 것도 I/O에 포함됩니다. 💡 I/O는 어플리케이션의 성능에 가장 영향을 많이 미칩니다! 따라서 높은 성능을 보장해야 하는 어플리케이션 입장에서는 I/O는 큰 장애물이 될 수 있습니다. I/O로 인한 blocking은 CPU를 긴 시간동안 idle하게 두기 때문에, 다른 작업을 할 수 있음에도 오랫동안 다른 작업을 실행할 수 없어 매우 비효율적입니다. ※ i..

CS/Network 2023.02.26

[Network] SSL / TLS HandShake

✔️ 들어가기 전... HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 TLS / SSL 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말한다. → 이를 통해 '통신을 암호화' 한다. ※ 참고 : 향상된 TCP 버전을 SSL이라 부르고, SSL의 약간 변형된 버전이 TLS(표준화됨)이다. 더보기 SSL(Secure Socket Layer)은 SSL 1.0부터 시작해서 SSL 2.0, SSL 3.0, TLS(Transport Layer Security Protocol) 1.0, TLS 1.3까지 버전이 올라가며 마지막으로 TLS로 명칭이 변경되었으나, 보통 이를 합쳐 SSL/TLS로 많이 부른다. ✔️ 대칭키 암호화 vs 공개키 암호화(비대칭 암호화) 💡 대칭키 암호화 대칭키 암호란, 암호화에..

CS/Network 2023.02.16

TCP/IP 흐름제어 & 혼잡제어, TCP의 신뢰성 보장

💡 일반적으로 TCP는 3-way-handshaking과 흐름제어, 혼잡제어를 통해 신뢰성을 보장한다. 네트워크 통신 과정 도중에는 네트워크 혼잡성 및 receiver의 overload 등의 사유로 데이터가 손실되거나, 전달 순서가 바뀌는 등의 문제가 발생할 수 있다. → 이런 문제를 해결하고, 통신의 신뢰성을 보장하기 위해 TCP/IP에서 사용하는 것이 흐름제어와 혼잡제어이다. 💡 이같이 흐름제어는 속도를 일치시키는 서비스이다. → 수신하는 애플리케이션이 읽는 속도와, 송신자가 전송하는 속도를 같게 한다. ※ TCP 버퍼 더보기 전송 및 수신 전 TCP 세그먼트를 보관하는 곳이다. 송신 측은 버퍼에 TCP 세그먼트를 보관한 후 순차적으로 전송하고, 수신 측은 도착한 TCP 세그먼트를 애플리케이션이 읽을..

CS/Network 2023.02.12

[Network] HTTP의 GET과 POST 비교

둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 사용자가 어떤 홈페이지로 이동하기 위해 URL을 브라우저 주소창에 작성하고, 엔터를 누르면 페이지로 이동한다. 사용자는 단순히 URL(Uniform Resource Locator)를 입력하였을 뿐이지만, 서버 내부에서는 클라이언트의 요청에 응답하기 위해서 처리를 해주어야 한다. 여기서 클라이언트가 서버로 요청을 보내는 방법인 HTTP Method에는 크게 2가지 방식이 있는데, 그것이 GET 방식과 POST 방식이다. HTTP Method와 각각이 사용되는 경우 종류 기능 GET 데이터 조회 POST 요청 데이터 처리(보통 데이터 등록 사용) PUT 데이터 변경 (해당 데이터가 없으면 생성) PATCH 일부 데이터만 변경..

CS/Network 2023.01.18

[Network] HTTP & HTTPS

※ 스트림 (stream) : 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름 ※ 개인키 : 비밀키라고도 하며, 개인이 소유하고 있는 키이자 반드시 자신만이 소유해야 하는 키 ※ 공개키 : 공개되어 있는 키 ※ 해시 : 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값 ※ 해싱 : 임의의 데이터를 해시로 바꿔주는 일이며, 해시 함수가 이를 담당 ※ 해시 함수 : 임의의 데이터를 입력으로 받아 일정한 길의의 데이터로 바꿔주는 함수 HTTP 프로토콜이란? HTTP(Hyper Text Transfer Protocol)이란, 데이터를 주고받기 위한 프로토콜이며 서버/클라이언트 모델을 따른다. HTTP는 상태 정보를 저장하지 않는 Statele..

CS/Network 2023.01.17

[Network] 네트워크 기기 & IP 주소

네트워크는 여러 개의 네트워크 기기를 기반으로 구축된다. 네트워크 기기의 처리 범위 네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만, 그 반대는 불가하다. 예를 들어, L7 스위치는 애플리케이션 계층을 처리하는 기기로 그 밑의 모든 계층의 프로토콜을 처리할 수 있다. 하지만 AP는 물리 계층 밖에 처리하지 못한다. 애플리케이션 계층 : L7 스위치 인터넷 계층 : 라우터, L3 스위치 데이터 링크 계층 : L2 스위치, 브리지 물리 계층 : NIC, 리피터, AP 애플리케이션 계층을 처리하는 기기 애플리케이션 계층을 처리하는 기기로는 L7 스위치..

CS/Network 2023.01.16

[Network] 네트워크의 기초 & TCP/IP 4계층 모델

네트워크란? 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합을 의미 ※ 참고 노드 : 서버, 라우터, 스위치 증 네트워크 장치를 의미 링크 : 유선 또는 무선을 의미 좋은 네트워크란? 많은 처리량을 처리할 수 있으며, 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 - 처리량 (throughput) : 링크 내에서 성공적으로 전달된 데이터의 양을 의미. 보통 얼만큼의 트래픽을 처리했는지를 나타낸다. '많은 트래핑을 처리한다 = 많은 처리량을 가진다' (단위 : bps(bits per second, 초당 전송 또는 수신되는 비트 수) - 트래픽 : 특정 시점에 링크 내에 '흐르는' 데이터의 양을 의미. 예를 들어, 서버에 저장된 파일을 클라이..

CS/Network 2023.01.16

[Network] TCP와 UDP

✔️ 들어가기 전 요약 [1줄 요약] TCP와 UDP는 OSI 7 계층 중 전송 계층에서 사용되는 프로토콜이다. ※ 전송 계층은 송신자와 수신자를 연결하는 통신서비스르 제공하는 계층이다. 즉, 데이터의 전달을 담당하며, 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다. TCP와 UDP는 각각 가상회선 방식과 데이터그램 방식이라는 점에서 차이를 가지며, 신뢰성과 연속성 두 측면에서 상충관계에 있다. 💡 TCP와 UDP의 차이 - TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있다. - UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단..

CS/Network 2023.01.15

[Network] TCP의 3-way-handshake와 4-way-handshake

💡 연결을 성립하고 해제하는 과정을 말한다. 3 way-handshake란? : 연결을 설정하는 과정 TCP 네트워크에서 통신하는 장치가 서로 연결이 잘 되었는지 확인하는 방법 (연결 성립) 송신자와 수신자는 총 3번에 걸쳐 데이터를 주고 받으며, 통신이 가능한 상태인지 확인한다. TCP는 정확한 전송을 보장해야 한다. 따라서 TCP/IP프로토콜을 이용해 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 way handshake 과정을 진행한다. Client → Server : TCP SYN Server → Client : TCP SYN + ACK Clinet → Server : TCP ACK ※ 참고 - SYN : Synchronize Sequence Numbers - ACK : Acknowledgm..

CS/Network 2023.01.15