Network5 C Sockets - 기본 동작 정리 소개 C 언어에서 소켓 프로그래밍 중 accept() 와 connect() 에 대한 글입니다. '윤성우의 열혈 TCP/IP 소켓 프로그래밍' 을 통해 학습한 내용을 바탕으로 정리한 내용이니, 더 궁금하다면 책을 읽어보시는 것도 추천드립니다. 소켓 동작 방식 (TCP) 기본적으로 서버와 클라이언트 입장에서의 소켓 단계들을 설명드리고 그 중에서 중요한 부분 중 하나인 accept, connect 에 대해서 알아보겠습니다. 서버 소켓 입장 서버에서는 다음과 같이 총 6단계 정도를 거칩니다. 소켓 생성 - socket() 소켓 바인딩 - bind() 리스닝 - listen() 수락 - accept() 데이터 송수신 - read()/write() 종료 - close() 1. 소켓 생성 - socket() 소켓을 .. 2024. 3. 3. HTTP 1.0/1.1/2 소개 해당 글은 HTTP (Hyper Text Transfer Protocol) 의 3 개 버전에 대해서 알아보는 글입니다. 실제로 나온 버전은 3까지 있지만 다음 글의 주제로 남겨두고 1.0, 1.1 버전과 2 버전에 대해 습득하게 된 내용을 적고자 합니다. HTTP/1.0 1.0 버전은 1996년에 RFC 1945 로 발표가 되었고 아래 링크를 통해 직접 확인해 볼 수 있습니다. https://datatracker.ietf.org/doc/html/rfc1945 RFC 1945: Hypertext Transfer Protocol -- HTTP/1.0 The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the light.. 2023. 10. 26. 네트워크 기본 분석 명령어 모음 소개 네트워크를 파악하기 위해서는 몇가지 방법이 존재합니다. 그 중에서 가장 기본적으로 사용되는 몇가지 명령어들을 소개하고자 합니다. 해당 명령어들은 리눅스 기반으로 소개되고 있습니다. 명령어 목록 ping ping (Packet Internet Grope) 은 네트워크 대상에 일정 크기의 패킷들을 전달하는 것이 목표입니다. 해당 패킷이 전송되고 전달받는 것을 확인하면서 패킷 송/수신 상태나 시간 등을 알 수 있습니다. ping 은 TCP/IP 프로토콜 중에서 ICMP 프로토콜을 통해서 동작하고 있고 만약에 해당 프로토콜이 지원이 되지 않는다면 실행할 수 없습니다. 마찬가지로 해당 프로토콜을 요청 대상에서 차단한다면 ping 은 사용 불가합니다. 실행 방식은 다음과 같습니다. $ ping www.goog.. 2023. 10. 19. [C] sockaddr_in 와 sockaddr 요약 C 의 소켓 프로그래밍 중에서 sockaddr_in 과 sockaddr 를 어떻게 활용하는지 그리고 sockaddr_in 의 멤버 중 하나인 sin_zero 의 역할에 대해서 알아봅니다. sockaddr_in struct sockaddr_in 은 IPv4 기반 주소표현을 위한 구조체입니다. 쉽게 말해서 IPv4 의 IP 주소체계 정보, IP 정보, PORT 정보를 담을 수 있는 구조체로 소켓을 IP 주소체계로 초기화할 때 필요한 정보들을 담고 있습니다. 구조 구조를 먼저 본다면 다음과 같습니다. struct sockaddr_in { sa_family_t sin_family; uint16_t sin_port; struct sin_addr sin_addr; char sin_zero[8]; }; 그리고 .. 2023. 4. 30. 네트워크 구조 간단 정리 네트워크 기초 컴퓨터 네트워크에는 기본적으로 3개가 충족되어야 한다고 볼 수 있다. 두 기기가 소통을 하기 위해서는 일종의 규칙과 같은 것이 필요하다. 이것을 Protocol 프로토콜 이라고 부른다. 기기 간에 전송되는 데이터는 온전해야 의미가 있다 (TCP vs UDP 간 차이가 있긴 하지만...) 기기 간에 소통이 될 때에는 Source 와 Destination 이 명시되어야 한다. 사실 그렇게 막 어려운 부분은 없다. 두 명의 사람들이 소통을 하기 위해서는 공통된 언어라든가 하는 것을 기반으로 진행해야 하는 것처럼 컴퓨터 또한 적용이 된다. 또한 우리가 영어, 한국어, 중국어, 등 언어 명을 정하듯이 컴퓨터의 프로토콜 또한 이름들이 정해져 있다. 물론 각 프로토콜의 역할은 다르기 때문에 같은 기능을.. 2022. 5. 31. 이전 1 다음