본문 바로가기

CS공부3

IOCP 겉핡기 - Blocking과 Non-blocking I/O, Multiplexing, IOCP 오늘은 코드 상에서 직접 작동하는 과정을 알아보기보단, 좀 친숙하게 접근해보려 한다!! 뭐하는 넘인지 감을 잡기 위한 겉핡기 공부!! 그 주인공은 IOCP다!!  IOCP는 비동기 입출력 처리 기법의 일종으로, 특히 우리는 서버 개발, 그 중에서도 소켓 프로그래밍을 구현하면서 이 기법을 알게 모르게 활용하게 될 것이다!! 하지만 주인공을 만나보기 전에 알아야할 몇몇 개념들이 있으니, 차근차근 알아보도록 하자구!! 먼저 동기 입출력 방식을 살펴보고, 왜 서버 개발엔 썩 적절하지 않은지 고찰해볼 예정이구, 그 대안으로 비동기 입출력 방식을 알아보고, 그래도 남아있는 미흡한 점에 대해 고민해볼 것이다!! 그리고 이를 보완해주는 오늘의 주인공 IOCP를 알아보며 마무리하는 것이다!!Blocking I/O 동기 .. 2024. 12. 23.
전송 계층 - TCP 중심으로 전송 계층 개요네트워크 계층과 응용 계층 사이에 위치해 둘을 보완하거나 지원해주는 계층!IP의 한계 보완신뢰할 수 없는 통신 Unreliable ProtocolIP는 패킷이 수신지까지 제대로 전송됐다는 보장을 하지 않는다!!당연히 재전송도 해주지 않으며, 패킷이 올바른 순서로 도착할 거란 보장 역시 하지 않는다!!최선형 전달 Best Effort Delivery단어의 의미와 달리 "노오력"만 한다는 뜻... 최선을 다 해보겠으나 보장은 못 해요 ^_^비연결형 통신 Connectionless Protocol송수신 호스트 간에 사전 연결 수립 작업이 없다!!그니까 "나 보낼게?", "그려 보내라~" 이런 약속이 전혀 없고, 그저 패킷을 보내기만 할 뿐임이렇게만 보면 IP를 왜 쓰는 겨 싶겠지만, 신뢰성을 보.. 2024. 12. 20.
네트워크 계층 - IP주소와 Routing 1. 네트워크 계층 개요우선 네트워크 계층에 대해 간단히 복기하고 넘어가보자! # 네트워크 계층에선 데이터가 향할 주소를 설정하고, 이로 향할 최적의 경로를 선택한다! 전자에 관련된 것이 IP주소, 후자에 관련된 것이 Routing인 것이다!# 3 계층에서 활용하는 데이터의 단위는 패킷 Packet으로, 이전 계층의 Frame에 캡슐화, 또는 다음 계층의 Segment에 역캡슐화가 이뤄진 것이다! (캡슐화는 계층별로 데이터를 인식하기 위한 명찰(=Header)을 붙이는 과정을 의미함!)# 관련된 프로토콜로는 IP주소를 통해 MAC주소를 찾아 라우팅의 효율성을 높여주는 ARP, 통신 오류 점검하는 ICMP, 소속 통신망을 알려주는 IGMP 등이 있었다! 오늘은 주요 특징인 IP주소와 Routing에 대해 .. 2024. 12. 14.