728x90

분류 전체보기 209

IP(Internet Protocol)

IP(Internet Protocol)IP 주소는 일반적으로 비부호형 32비트 이진수로 표현되지만, 사람이 읽기 쉬운 형식으로는 8비트씩 4부분으로 나누어 10진수로 표현하며, 각 부분은 점으로 구분합니다. (192.168.0.1)네트워크 프로그램은 IP 주소를 IP 주소 구조체에 저장합니다.TCP / IP 프로토콜에서 가장 많이 사용되는 프로토콜입니다. /* IP address structure */struct in_addr { uint32_t s_addr; /* Address in network byte order (big-endian) */};특성비신뢰성: IP 데이터 그램이 목적지에 성공적으로 도달한다는 것을 보장하지 않음비접속형: 전달되는 데이터그램에 대해 상태 정보 유지 않음주소 지정: ..

HTTP(Hyper Text Transfer Protocol)

HTTP(Hyper Text Transfer Protocol)하이퍼 텍스트를 빠르게 교환하기 위한 프로토콜의 일종으로, 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지 정해 놓은 규칙이다. Request, Response 로 구성되어 있고 80번 포트를 사용합니다.조사하면서 알게된 충격적 사실인데, // 부분은 고안당시 멋으로 추가한 것이라고 한다.보안 연결 HTTPSHTTPS로 연결하면 전송 내용이 암호화되어 전달됩니다. 요즘에는 보안을 이유로 거의 왠만한 사이트가 HTTPS로 구현되어있습니다.HTTPS가 사용되지 않으면 비밀번호나 신용카드 번호 등의 정보가 도용될 수 있다고 합니다.구조HTTP는 클라이언트가 Request를 하면, 서버가 Response하는 구조로 되어 있다. FTP나 Telne..

CGI(Common Gateway Interface)

CGI(Common Gateway Interface)[참고 사이트]https://live-everyday.tistory.com/197웹서버에서 동적인 페이지를 보여 주기 위해 임의의 프로그램을 실행할 수 있도록 하는 기술 중 하나입니다.서버를 통해 들어온 웹 브라우저에서 넘겨진 요청을 프로그램에 적절히 넘겨줍니다.등장 배경원래 웹 서버는 서버에 저장되어 있는 고정된 문서를 보여 주는 역할을 했습니다.하지만 웹 서버에서 정보를 찾거나 기록을 하려면 웹 서버를 고쳐서 그런 기능을 넣어야 하는데 버틸 수 없으니, 대신 웹 서버가 특정한 URL로 들어가면 요청을 원하는 프로그램에 적절히 넘겨 주는 기술이 필요해졌는데 CGI가 그런 역할을 합니다.전달 및 응답 절차대게 웹 브라우저를 통해 요청이 웹 서버로 전달됩..

MIME Type

MIME TypeMIME 타입은 웹과 이메일 등에서 파일이나 데이터의 종류를 식별하기 위한 표준 포맷입니다. 초기에는 이메일 첨부파일의 타입을 구분하기 위해 개발되었으나 발전되어 웹과 API 등 다양한 곳에서 쓰이게 되었습니다.‘데이터가 어떤 형식인지’를 나타내는 문자열로 웹 서버와 브라우저, 이메일 클라이언트, API 등이 데이터를 처리할 때 적절한 방식과 보안으로 처리할 수 있게 도와줍니다.MIME 타입 예시MIME Type설명text/htmlHTML 문서text/plain일반 텍스트image/pngPNG 이미지application/jsonJSON 데이터application/pdfPDF 파일video/mp4MP4 비디오 파일실사용(HTML)HTTP 응답 헤더와 보안웹 서버가 파일을 전송할 때 잘못된 ..

Web server (웹 서버)

Web server (웹 서버)하드웨어적 서버에 접속한 사용자에게 웹 서비스를 제공하기 위해 사용되는 소프트웨어 서버의 한 종류입니다. 저희가 웹 개발을 할 때 웹 서버를 구현하기 위해 아파치를 쓰는 것과 같습니다.HTTP(Hypertext Transfer Protocol)라고 하는 텍스트 기반 응용 수준 프로토콜을 사용해서 상호 연동합니다. 웹 브라우저는 서버로의 인터넷 연결을 오픈하고 컨텐츠를 요청합니다. 이에 서버는 응답하고, 연결을 닫습니다. 브라우저는 받은 컨텐츠를 읽고 스크린에 보여줍니다. 특징사용도 높은 웹 서버는 수십에서 수만 건의 request를 받습니다.HTTP 특성상 데이터 전송을 종료하면 통신을 끊고, 파일 전송/동영상 시청과 같은 대량의 데이터를 송수신하는 경우에는 따로 서버를 구..

Datagram Socket vs Stream Socket

[참고 사이트]https://stackoverflow.com/questions/4688855/whats-the-difference-between-streams-and-datagrams-in-network-programminghttps://velog.io/@orcasuit/Datagram-Socket-vs-Stream-SocketDatagram Socket(UDP)프로토콜: UDP연결 방식: 비연결형데이터 전송 단위: 데이터 그램(개별적인 패킷 단위 전송)신뢰성: 보장하지 않음(데이터 순서 보장 X, 재전송 X, 손실 허용으로 복구 필요 없음)속도: 빠름 (헤더가 작고 연결 유지 필요 없기 때문)서버와 클라이언트 사이에 전용 및 엔드투엔드 채널이 없음.→ 비연결 지향, 신뢰성 0, 속도 빠름장점빠른 속도,..

파일 디스크립터(TCP/IP 측면)

파일 디스크립터(TCP/IP 측면)리눅스/유닉스 계열 OS에서 열린 파일, 소켓, 파이프 등의 리소스를 식별하기 위한 정수형 번호이다.Ex)0: 표준 입력(stdin)1: 표준 출력(stdout)2: 표준 에러(stderr)그 외의 3부터는 프로세스에서 새로 연 리소스 들이다.UNIX 철학UNIX 철학에는 ‘모든 것이 파일’이라는 원칙이 있습니다.파일, 소켓 모두 내부적으로 커널 레벨에서 I/O 버퍼와 디스크럽터 테이블을 통해 이뤄집니다. 그래서 소켓도 파일처럼 read(), write(), close() 등의 시스템 콜을 사용할 수 있습니다.해당되는 파일 디스크럽터를 TCP/IP 소켓과 연관지어서 설명하면 다음과 같습니다.1. 서버 소켓 생성int listenfd = socket(AF_INET, SOC..

BSD 소켓(소켓)

BSD 소켓(소켓)일반적으로 Socket이라고 하면 BSD 소켓을 말합니다. (POSIX 기준으로 버클리에서 만든 네트워크 인터페이스)TCP / IP 프로토콜을 기반으로 개발된 소켓 인터페이스이다. 네트워크 통신을 위한 소프트웨어 인터페이스라고도 합니다.커널 관점에서 소켓은 통신을 위한 끝점이고, 식별자를 가지는 열린 파일로 생각합니다.소켓 로직소켓은 다음과 같은 클라이언트 - 서버 방식으로 전개된다. TCP 기반이므로 accept가 와여 소켓 연결을 허용하며, EOF 예외처리가 생길 시, 서버를 닫습니다.주소 구조체sokaddr_in 타입의 16바이트 구조체에 저장된다.sin_family 필드: AF_INETsin_port 필드: 16비트 포트 번호sin_addr 필드: 32비트 IP주소. → IP주소..

클라이언트 - 서버 모델

[참고 사이트]https://velog.io/@bining/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84모든 네트워크 응용 프로그램은 해당 모델을 기초하고 있다. 한 개의 서버에서 프로세스와 한 개 이상의 클라이언트 프로세스로 구성된다.서버는 일부 리소스를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다.예시로 FTP 서버는 클라이언트를 위해 저장하고 읽어오는 디스크 파일들을 관리한다.근본적인 연산은 트랜잭션으로 이루어지며 네 단계로 표현된다.클라이언트가 서비스 필요시, 한 개의 request를 서버에 보내는 것으로 트랜잭션을 개시한다.ex) 웹 브라우저가 파일을 필요로 할 시, 웹 서버로 요청..

TCP / IP Layer

TCP / IP Layer인터넷에서 쓰이는 프로토콜들의 모음이다. HTTP, TCP, UDP, IP 등이 속합니다. 위의 사진은 OSI 7 Layer와 비교한 사진입니다. 간단히 설명합니다.각 인터넷 호스트는 TCP/IP 프로토콜을 사용한 소프트웨어를 실행하며, 거의 모든 컴퓨터에서 지원합니다.인터넷 클라이언트와 서버는 소켓 인터페이스와 유닉스 I/O 함수를 혼합해서 통신합니다. 네트워크 접근 계층(Ethernet, Wi-Fi, PPP)데이터 단위: Frame / 전송주소: MAC가장 낮은 계층으로 데이터를 다른 컴퓨터로 직접 송신하거나 수신 받는 등의 물리적 기능을 수행한다. 프레이밍, 물리적 주소 지정, 오류 감지 등을 수행합니다.인터넷 계층(IP, ICMP, ARP)데이터 단위: Packet(IP계..

728x90