CS

CS

동기 & 비동기 , 블로킹 & 넌블로킹

위의 제목에 써있는 단어들은 프로그래밍 할 때 자주 등장하고 사용되는 단어들입니다. 우리는 흔히 Blocking == Synchronous(동기) Non-Blocking == Asynchronous(비동기) 와 같이 같다고 생각하시는 분들도 있을 것이라 생각합니다. 위의 개념들은 서로 다른 관점들을 가지고 있습니다. 동기와 비동기는 호출되는 함수의 작업 완료 여부를 누가 신경쓰는가에 관점이 있습니다. - 호출하는 함수일까? - 호출되는 함수일까? 블로킹과 넌블로킹은 호출되는 함수가 바로 반환을 하는가에 관점이 있습니다. 서로의 관점이 다르기 때문에 이 4가지 개념은 서로 조합이 되어서 사용될 수 있습니다. 동기 & 비동기 함수 A가 함수 B를 호출했다고 가정하겠습니다. 동기 동기는 함수 A( 호출하는 함..

CS

TCP & UDP

TCP와 UDP 모두 OSI 7계층 중에서 전송계층에서 사용되는 통신 규약입니다. 먼저 전송 계층이 어떤 역할을 하는지 알아보겠습니다. 전송계층 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층입니다. 전송 계층은 다음과 같은 기능을 합니다. - 오류 제어 - 흐름 제어 - 혼잡 제어 - 데이터 순서화 - 분할과 병합 오류 제어 데이터의 변형이나, 데이터 분실 시 재전송 기능으로 복구를 진행합니다. 흐름 제어 송신자와 수신자의 전송과정에서 속도 차이를 제어해주는 기능을 합니다. 혼잡 제어 네트워크 상태에 따라 전송률을 제어합니다. 분할과 병합 데이터 크기가 전송계층에서 처리할 크기보다 큰 경우 분할하고, 수신한 데이터를 원래 크기로 모으는 기능을 합니다. #전송계층이 없는경우? 데이터의 순차 전송을..

KimDaQ
'CS' 카테고리의 글 목록